home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 40
/
Aminet 40 (2000)(Schatztruhe)[!][Dec 2000].iso
/
Aminet
/
game
/
board
/
AMono_source.lha
/
Mono_source
/
MonopolyDeluxe.AMOS
/
MonopolyDeluxe.amosSourceCode
< prev
next >
Encoding:
Amiga
Atari
Commodore
DOS
FM Towns/JPY
Macintosh
Macintosh JP
Macintosh to JP
NeXTSTEP
RISC OS/Acorn
Shift JIS
UTF-8
Wrap
AMOS Source Code
|
2000-09-24
|
143.2 KB
|
7,026 lines
Set Buffer 30
Rem Monopoly Deluxe
Rem Version 1.8 Beta2
Rem Copyright � 1935,1936,1947,1951,1952,1954,1961,1973
Rem Parker Brothers all rights reserved
Rem this Amiga version by Al Metz
Rem All original programming � 1994-2000 Al Metz
Rem All rights reserved
Rem main screen = bank #6
Rem pick pieces = bank #7
Rem Deluxe screen = bank #8
Rem Deluxe pieces = bank #9
Rem title screen = bank #10
Rem Deluxe Chance = bank #11-14
Rem Misc Graphics = bank #15
Rem Rescource bank = bank #16
Rem Deluxe CChest = bank #17-19
Rem Floating point variables use # (ex X#=1.5)
On Break Proc CLEANCLOSE
On Error Proc CLEANCLOSE2
_CLOSERTOOLS
Lib Open 1,"reqtools.library",0
Hide On
Curs Off
Voice %1111
Set Envel 1,0 To 1,63
Set Envel 1,1 To 1,63
Set Envel 1,2 To 1,63
Set Envel 1,3 To 100,63
Set Envel 1,4 To 1,63
Set Envel 1,5 To 100,63
Set Envel 1,6 To 1,63
Wave 1 To %110
Wave 0 To %100
Volume %110,30
Volume %1001,63
Randomize Timer
VARIABLES:
Dim PX1(18),PY1(18),PX2(18),PY2(18),M(47),BB(4),AUCT(4),TEMP(4),TW(4)
Dim BX(47),BY(47),PROP$(47),PRICE(47),RENT(47,5),PCOLOR(47),PMS(47)
Dim HOUSECOST(47),CURRENT(47),HOUSE(47),HBACKUP(47),CURBACK(47)
Dim PL$(4),PC(4),PM(4),PROPOWN(47),PPOS(4),PLPC(4),COMPPLY(4),GO(16)
Dim CCHEST1$(16),CHANCE1$(16),CCMON(16),CCSPEC(16),CMON(16),CSPEC(16)
Dim CCHEST2$(16),CCHEST3$(16),CHANCE2$(16),CHANCE3$(16),CHANCE4$(16)
Dim SET1(47),SET2(47),RRRENT(4),JAILOUT(4),FS(4),DPC(4),DFX(47),DFY(47)
Dim HOX(4),HOY(4),CHIPNAME$(12),CR$(10),LOAN(47),LCST(47),LCT(47),LWHO(47)
Dim TEMPL2$(4),TEMPL3(4),EFFECT(20),PP(4),PV1#(47),PV2#(47),PVX(47),PV3#(40)
Dim CS(40),CS2(40),DN$(16),DLPC(4),SX(41),SY(41),BVD(4),DC$(4),DD$(4)
Dim CS1(16),CX1(16),CY1(16),CX2(16),CY2(16)
Dim CCS1(16),CCX1(16),CCY1(16),CCX2(16),CCY2(16)
R2:
Restore
GOOJFCC=0 : GOOJFC=0 : Rem goojfcc=get out of jail free Comm. Chest - same for Chance
CC=0 : C=0 : L=0 : M=0 : HOUSESLEFT=32 : HOTELSLEFT=12 : PARKING=0 : PARKING$=""
WORTH=0 : DUBBLE=0 : PMT=0 : PMR=0 : SHUMAN=0 : D3=0 : H1=4 : H2=5 : CH=0
COUNTRY=0 : C$="" : For X=1 To 4 : PP(X)=1 : Next X : X=0 : QSB=0 : CH$=""
VERSION$="1.8b2" : SNAKE=0 : QQ=0 : QQ$="" : CJUNK=0 : G$=" "
PM1=0 : PM2=0 : PM3=0 : DL$="" : FCR=0 : DS$="" : For X=1 To 4 : BVD(X)=0 : Next X
Rem pl$=player name:pc=player color:pm=player money:propown=who owns a property
Rem ppos=player position:plpc=player piece shape:compply=if computer controls
Rem np=number of players:pcolor=property color:go=pos at start
Rem CCHEST$=Commun. Chest string,CCMON=ccmoney,CCspec if special,CCBOB=Bob #
Rem same for Chance
Rem set1 and set 2 are other props in color set.
Rem CURRENT=current rent:HOUSESLEFT=# of houses remaining:HOTELSLEFT=same for hotels
Rem PARKING=free parking jackpot:PARKING$=jackpot y/n
Rem CP$=colored props:QS$=quick start:FP$=fast play:BTB$=bankrupt to bank
Rem QQ=multiply money for foreign versions:DL$=Deluxe version y/n
Rem FCR=Front Current Screen: BVD= for Deluxe dead bob placekeeping
Global PROP$(),PCOLOR(),PRICE(),RENT(),CHIPNAME$(),PARKING$,PARKING,COUNTRY
Global HOUSECOST(),S$,PL$(),PC(),PM(),PLPC(),COMPPLY(),PROPOWN(),SEC,C$
Global PPOS(),L,CCHEST1$(),CCHEST2$(),CCHEST3$(),CCMON(),CCSPEC(),CC,M
Global CHANCE1$(),CHANCE2$(),CHANCE3$(),CHANCE4$(),CMON(),CSPEC(),C,MOV,NP
Global D1,D2,SET1(),SET2(),PA$,CURRENT(),RRRENT(),HOUSE(),RD,UD,SELL1,SELL2
Global HIBID,H,M(),WORTH,A$,PM$,LH$,SF$,PM$,QD$,NP$,DEL,CH$,SNAKE
Global BX(),BY(),CP$,PP(),LG$,QS$,FP$,BTB$,PV1#(),PV2#(),PVX(),PV3#(),QQ,QQ$
Global JUNKY,PM1,DL$,FCR,BVD(),DNP,DLPC(),DPC(),DFX(),DFY()
Global CS1(),CX1(),CY1(),CX2(),CY2()
Global CCS1(),CCX1(),CCY1(),CCX2(),CCY2()
If Ntsc
DEL=10
Else
DEL=8
End If
Screen Open 1,640,200,16,Hires
Curs Off
Flash Off
Screen To Front 1
Screen Open 0,640,200,16,Hires
Curs Off
Flash Off
Screen Open 2,640,200,16,Hires
Curs Off
Flash Off
Screen Open 3,640,200,16,Hires
Curs Off
Flash Off
Screen To Back 3
Screen Open 4,640,200,16,Hires
Curs Off
Flash Off
Screen To Back 4
Unpack 8 To 2
Palette ,,,,,,,,,,,,,,,,,,,,,$BBB,$888,$444,,$BBB,$888,$444,,$BBB,$888,$444
Screen To Back 2
Unpack 6 To 0
Screen To Back 0
PC(0)=2 : PC(1)=4 : PC(2)=3 : PC(3)=9 : PC(4)=5
For J=0 To 4
DPC(J)=PC(J)
Next J
Screen 1
Wait Vbl
Get Palette 0
View
Wait Vbl
For J=1 To 16
Read DN$(J)
Next J
For J=1 To 12
Read CHIPNAME$(J)
Next J
SHUFFLECHIP
PL$(0)="Bank"
JUNK$=""
SETUP1:
D1=Rnd(5)+1 : D2=Rnd(5)+1
For X=1 To 109
Paste Bob 600,600,X
Next X
Reserve Zone
Reserve Zone 41
For J=1 To 41
Read X1,Y1,X2,Y2
Set Zone J,X1,Y1 To X2,Y2
Next J
DL$="y" : PA$="y" : LH$="y" : SF$="n" : PARKING$="n" : PM$="n"
QD$="n" : NP=4 : COUNTRY=1 : C$="$" : CP$="n" : LG$="n" : QS$="n"
FP$="n" : BTB$="n" : CH$="y" : QQ=1 : FCR=0
_COPYRIGHT[50]
Colour 8,$0
Wait Vbl
Show On
Repeat
While Mouse Click=0 and JUNK$="" : JUNK$=Inkey$ : Wend
MZ=Mouse Zone
On MZ Proc T1Y,T1N,T2Y,T2N,T3Y,T3N,T4Y,T4N,T5Y,T5N,T6Y,T6N,T7Y,T7N
On MZ-14 Proc T8Y,T8N,T9Y,T9N,T10Y,T10N,T11Y,T11N,PL1,PL2,PL3,PL4,TLD,TSV
On MZ-29 Proc TDF,TUS,TUK,TAU,TFR,TITA,TGER,TSWE,TSW,TNC,TLG
If MZ<41 or JUNK$=Chr$(13) Then Sam Play 1
Until MZ=29 or MZ=40 or JUNK$=Chr$(13)
Reserve Zone
Colour 8,$880
JUNK$=""
If FP$="y" Then DEL=1
If QS$="y" Then H1=3 : H2=4
If DL$="y" Then QQ=1 : FCR=2 : PC(1)=14 : PC(2)=14 : PC(3)=14 : PC(4)=14
' Centre "This game is dedicated to the memories of"
' Locate 0,8
' Centre "My Dad,"
' Locate 0,10
' Centre "8/19/30 - 5/15/94"
' Locate 0,12
' Centre "And my Mom."
' Locate 0,14
' Centre "7/12/35 - 2/17/95"
Screen 1
Screen To Front 1
Curs Off
Wait Vbl
Paper 0
Pen 14
Cls 0
Wait Vbl
Curs On
Wait Vbl
If LG$="y" Then Goto SKIP0
For Y=1 To 2
For X=1 To 3
If PP(X)=0
Swap PP(X),PP(X+1) : Swap PC(X),PC(X+1)
End If
Next X :
Next Y : Y=0 : X=0
STUFF:
A$="" : B$=""
Resource Bank 16
Resource Screen Open 3,640,200,0
Flash Off : Curs Off : Cls 0 : Paper 0 : Pen 15
Get Palette 0
If DL$="n"
Palette ,,$888,,$AAA,$888,$555,$BBB,,$FFF,,Colour(PC(1)),Colour(PC(2)),Colour(PC(3)),Colour(PC(4))
Wait Vbl : Paper 0
A$=A$+"RUn 0,7;"
A$=A$+"EXit;"
B$=B$+"SetVar 1,' Enter names of players ';"
B$=B$+"SetVar 2,' Player #1 is ';"
B$=B$+"SetVar 3,' Player #2 is ';"
B$=B$+"SetVar 4,' Player #3 is ';"
B$=B$+"SetVar 5,' Player #4 is ';"
B$=B$+"SIze 520,150;"
B$=B$+"BAse SW SX-2/,SH SY-2/;"
B$=B$+"SAve 2;"
B$=B$+"BOx 0,0,1,SX,SY;"
B$=B$+"POutline 1VACX,10,1VA,0,9;"
B$=B$+"PRint 24,32,2VA,9;"
B$=B$+"LIne XB7+,YA4-,16,264;"
B$=B$+"EDit 1,XA8+,YA4+,13,13,'',0,11;"
B$=B$+"PRint 24,64,3VA,9;"
B$=B$+"LIne XB7+,YA4-,16,264;"
B$=B$+"EDit 2,XA8+,YA4+,13,13,'',0,12;"
If NP>2
B$=B$+"PRint 24,96,4VA,9;"
B$=B$+"LIne XB7+,YA4-,16,264;"
B$=B$+"EDit 3,XA8+,YA4+,13,13,'',0,13;"
If NP>3
B$=B$+"PRint 24,128,5VA,9;"
B$=B$+"LIne XB7+,YA4-,16,264;"
B$=B$+"EDit 4,XA8+,YA4+,13,13,'',0,14;"
End If
End If
B$=B$+"BUtton 0,SX80-,SY24-,56,14,0,0,1;[UNpack 0,0,BP47+;PR 4,4,' Done ',12;][BQ;]"
B$=B$+"KY 13,0;"
B$=B$+"RUn 0,3;"
B$=B$+"EXit;"
Dialog Open 1,B$
X=Dialog Run(1)
Sam Play 1
PL$(1)=Rdialog$(1,1)
PL$(2)=Rdialog$(1,2)
If NP>2
PL$(3)=Rdialog$(1,3)
If NP>3
PL$(4)=Rdialog$(1,4)
End If
End If
Dialog Close
End If
If DL$="y"
For J=1 To 12
CHIPNAME$(J)=""
Next J
End If
SKIP0:
DNP=NP
For J=1 To NP
BVD(J)=J
If PP(J)=1
COMPPLY(J)=0
Else
COMPPLY(J)=1
End If
If PL$(J)=""
If PP(J)>1
If PP(J)=3
PL$(J)="� "+CHIPNAME$(J)
Else
PL$(J)="� "+CHIPNAME$(J)
End If
Else
PL$(J)="Player"+Str$(J)
End If
End If
If Len(PL$(J))<4
PL$(J)=PL$(J)+" "
PL$(J)=Left$(PL$(J),4)
End If
PL$(J)=Left$(PL$(J),13)
DC$(J)=PL$(J)
Next J
If LG$="y" Then Goto SKIP1
Screen To Front 1
Screen 1
If DL$="y"
Unpack 9 To 1
Else
Unpack 7 To 1
End If
Get Palette 0
Screen Close 3
Wait Vbl
Reserve Zone 18
If DL$="y"
For J=1 To 17
Read JUNK,JUNK,JUNK,JUNK
Next J
JUNK=0
End If
For J=1 To 17 : Read PX1(J),PY1(J),PX2(J),PY2(J)
Set Zone J,PX1(J),PY1(J) To PX2(J),PY2(J)
Next J
If DL$="n"
For J=1 To 17
Read JUNK,JUNK,JUNK,JUNK
Next J
JUNK=0
End If
Set Zone 18,0,0 To 639,199
Wait Vbl
If DL$="y"
JUNK=12
Else
JUNK=14
End If
Paper JUNK : Pen 1
Locate 0,23
Centre "Please select your piece."
For J=1 To NP : Pen PC(J) : Paper 0 : Locate 23,2
Clear Key
Paper JUNK
Centre " "
If DL$="n"
Pen PC(J)
Else
Pen 0
End If
Locate 23,2
If DL$="n"
Paper 0
Else
Paper 12
End If
If DL$="n"
Centre " Player #"+Str$(J)+" `"+PL$(J)+"' "+Paper$(JUNK)
Else
If COMPPLY(J)=0
Centre PL$(J)
Else
If PP(J)=3
Centre "Expert"
Else
Centre "Amiga"
End If
End If
End If
REDO:
JUNK$="" : MZ=0
If COMPPLY(J)=0
Show On
While Mouse Click=0 and JUNK$="" : JUNK$=Inkey$ : Wend
MZ=Mouse Zone
If JUNK$=Chr$(13) or MZ=17
Hide On
Wait Vbl
HPB:
JJ=Rnd(15)+1
For K=1 To J
If PLPC(K)=JJ
X=1
End If
Next K
If X=1
X=0
Goto HPB
End If
MZ=JJ
Wait Vbl
JUNK$=""
End If
If MZ=18
MZ=0 : Goto REDO
End If
If DL$="y"
PL$(J)=DN$(MZ)
End If
DD$(J)=DN$(MZ)
Else
Hide On
Wait Vbl
CPB:
JJ=Rnd(15)+1
For K=1 To J
If PLPC(K)=JJ
X=1
End If
Next K
If X=1
X=0
Goto CPB
End If
MZ=JJ
If DL$="y"
PL$(J)=Left$(PL$(J),2)+DN$(MZ)
End If
Wait 3*DEL
End If
Sam Play 1
Ink PC(J)
If DL$="y"
Ink 11
End If
Bar PX1(MZ),PY1(MZ) To PX2(MZ),PY2(MZ)
Reset Zone MZ
PLPC(J)=MZ
DLPC(J)=MZ+81
MZ=0 : JUNK$=""
Next J
For J=1 To NP
PL$(J)=Left$(PL$(J),13)
If PLPC(J)<>16
If PLPC(J)>9
If PLPC(J)>12
PLPC(J)=PLPC(J)+29
Else
PLPC(J)=PLPC(J)+22
End If
End If
Else
PLPC(J)=53
End If
Next J
JUNK$=""
Screen 2
For J=1 To NP
Bob J+4,500,500,DLPC(J)
Next J
Screen 0
SKIP1:
If LG$="y"
For J=1 To 17
Read JUNK,JUNK,JUNK,JUNK,JUNK,JUNK,JUNK,JUNK
Next J
JUNK=0 : J=0
For J=1 To 4
PLPC(J)=J
Next J
End If
Hide On
SETUP2:
If FP$<>"y"
Repeat
JUNK=Rnd(60000)
JUNK=JUNK*2+1
JUNK$=Str$(JUNK)
If Right$(JUNK$,1)="5"
JUNK=0
End If
Until JUNK<>0
Appear FCR To 1,JUNK
End If
JUNK=0 : JUNK$=""
Screen To Front FCR
S$=" "
For X=1 To 25
DS$=DS$+Cright$
Next X
Screen FCR
Pen 14 : Paper 0
Curs Off
UDATEMENUS
Screen 0
Wait Vbl
Paper 0
For J=1 To 41
Read A,B : BX(J)=(A*2)+2 : BY(J)=B-4 : LCT(J)=0 : LWHO(J)=0
Next J
For J=1 To 41
Read A,B : SX(J)=A : SY(J)=B
Next J
For J=1 To 47 : Read A$,A,B,C,D,E,F,G,H,I,K,L,N,O#,P,Q
PROP$(J)=A$
PRICE(J)=A
RENT(J,0)=B
CURRENT(J)=RENT(J,0)
RENT(J,1)=C
RENT(J,2)=D
RENT(J,3)=E
RENT(J,4)=F
RENT(J,5)=G
HOUSECOST(J)=H
PCOLOR(J)=I
SET1(J)=K
SET2(J)=L
LCST(J)=N
LOAN(J)=0
PV1#(J)=O#
DFX(J)=P
DFY(J)=Q
Next J : L=0 : M=0
Gosub ZON
For J=6 To 36 Step 10
CURRENT(J)=25
Next J
For J=1 To NP
JAILOUT(J)=0
Next J
Ink 0 : Bar 181,38 To 562,(42+8*NP)
MAIN:
QQUEST[45] : JUNK1$=QQ$ : QQUEST[100] : JUNK2$=QQ$ : QQUEST[20] : JUNK3$=QQ$
QQUEST[25] : JUNK4$=QQ$ : QQUEST[200] : JUNK5$=QQ$ : QQUEST[10] : JUNK6$=QQ$
QQUEST[150] : JUNK7$=QQ$ : QQUEST[50] : JUNK8$=QQ$
QQUEST[40] : JUNK9$=QQ$ : QQUEST[115] : JUNK10$=QQ$
For J=1 To 16
Read CCHEST1$(J),CCHEST2$(J),CCHEST3$(J),CCMON(J),CCSPEC(J)
Read CCS1(J),CCX1(J),CCY1(J),CCX2(J),CCY2(J)
Next J
QQUEST[50] : JUNK1$=QQ$ : QQUEST[150] : JUNK2$=QQ$ : QQUEST[15] : JUNK3$=QQ$
QQUEST[200] : JUNK4$=QQ$ : QQUEST[25] : JUNK5$=QQ$ : QQUEST[100] : JUNK6$=QQ$
For J=1 To 16
Read CHANCE1$(J),CHANCE2$(J),CHANCE3$(J),CHANCE4$(J)
Read CMON(J),CSPEC(J)
Read CS1(J),CX1(J),CY1(J),CX2(J),CY2(J)
Next J
QQ$="" : JUNK1$="" : JUNK2$="" : JUNK3$="" : JUNK4$="" : JUNK5$=""
JUNK6$="" : JUNK7$="" : JUNK7$="" : JUNK8$="" : JUNK9$="" : JUNK10$=""
For J=1 To 16
Read GO(J)
Next J
For J=1 To 4
Read RRRENT(J)
Next J
NUMCR=8 : Rem number of cute remarks
For J=1 To NUMCR
Read CR$(J)
Next J
On COUNTRY-1 Gosub BRIT,AUS,FR,ITA,GER,SWE,SW,NC
SHUFFLECHEST
SHUFFLECHANCE
For J=1 To NP
PPOS(J)=1 : PM(J)=1500
Screen 0
Bob J,GO((J*2)-1),GO(J*2),PLPC(J)
Screen 2
Bob J+4,GO((J*2)+7),GO((J*2)+8),DLPC(J)
Screen 0
Wait Vbl
Next J
Wait Vbl
Paste Bob 1,1,20
Paste Bob 20,30,20
Screen 2
Paste Bob 472,30,98
Paste Bob 530,30,104
For J=1 To NP
Ink 0
JUNK=-48+(50*J)
Bar 4,JUNK To 51,JUNK+23
Paste Bob 4,JUNK,DLPC(J)-28
Next J
JUNK=0
Screen 0
Wait Vbl
L=1
Limit Mouse 128,52 To 446,248
Unpack 15 To 3
Screen To Back 3
Screen 0
Wait Vbl
Screen 2
Ink 12
Bar 244,63 To 594,177
Screen Copy 3,276,81,628,148 To 2,244,40
Paste Bob 472,30,D1+97 : Paste Bob 530,30,D2+103
Wait Vbl
Screen 0
CLRINFO
JUNK=0
For J=1 To NP
If COMPPLY(J)=1
Inc JUNK
End If
Next J
SHUMAN=NP-JUNK
If JUNK<NP
JUNK=NP
RSL:
If COMPPLY(JUNK)=1
Dec JUNK
Goto RSL
End If
RSL2:
JUNK2=Rnd(NP-1)+1
If COMPPLY(JUNK2)=1
Goto RSL2
End If
L=JUNK2
Else
L=1
End If
If QS$="y"
For J=1 To NP
For K=1 To 2
Repeat
JUNK=Rnd(40)+1
Until PRICE(JUNK)>0 and PROPOWN(JUNK)=0
PROPOWN(JUNK)=J
PM(J)=PM(J)-PRICE(JUNK)
DFILL[JUNK,J]
UDATEMONEY
Next K
Next J
UDATESETS
End If
UDATENAME
UDATEPROP
UDATEMONEY
JUNK=0
LOKATE[23,15]
CHPRT[" "+Pen$(PC(L))+PL$(L)+Pen$(14)+" goes first."]
LOKATE[23,12]
DPEN[4]
CHPRT["Go"]
DPEN[14]
LOKATE[23,20]
CHPRT["Press any key to roll dice."]
PMR=Rnd(2)+4
If LG$="y"
LG$="n"
Gosub LOD
End If
On Menu Gosub PROJECT,PROPERTY,BUY,SELL,TRADE,SHO
Menu On
ROLL:
Wait Vbl
If PL$(L)=""
Goto YOURDEAD
End If
IJX=1
UDATENAME
HIGHLIGHTTURN
JUNK$=Inkey$
If JUNK$=Chr$(27)
Gosub CQUIT
JUNK$="" : JUNK=0
End If
Clear Key
Rem use this for menus
Wait Vbl
If COMPPLY(L)=0
Show On
On Menu On
End If
Wait Vbl
RAPISJUNK$=Inkey$
If PM(L)<0
Gosub WARNING
End If
MOUSEX=0
If COMPPLY(L)=1
Hide On
On Menu Off
Menu Off
Else
On Menu On
Menu On
Show On
End If
While RAPISJUNK$="" and KILT=0 and MOUSEX=0
If Mouse Click=1
MOUSEX=Mouse Zone
If DL$="n"
If MOUSEX=47 or MOUSEX=44
MOUSEX=0
Else
If MOUSEX=43
OK
Else
Sam Play 1
End If
End If
Else
If MOUSEX=47 or MOUSEX=45 or MOUSEX=42
MOUSEX=0
Else
If MOUSEX=43
CLRINFO
Gosub ABOUT
MOUSEX=0
Else
Sam Play 1
End If
End If
End If
End If
If COMPPLY(L)=1
Clear Key
Gosub COMPROLL
End If
While Mouse Key=2
Wend
RAPISJUNK$=Inkey$
Wend
MOUSEX=0
On Menu Off
Menu Off
Hide On
Screen 2
JUNK=Point(244,32)
If JUNK<>12
Ink 12
Bar 242,30 To 596,180
Screen Copy 3,276,81,628,148 To 2,244,40
Paste Bob 472,30,D1+97 : Paste Bob 530,30,D2+103
Wait Vbl
CCMOOSE=0
Ink 14
End If
Screen 0
If PM(L)<0
Gosub KAPUT
End If
Wait Vbl
UDATENAME
HIGHLIGHTTURN
Wait Vbl
If KILT=1
KILT=0
Goto ROLL
End If
If PPOS(L)=41 Then Gosub INJAIL
ROLLS:
If IJX>0
If IJX<3
D1=Rnd(5)+1 : D2=Rnd(5)+1 : ROL=D1+D2
If QD$<>"y"
DICEROLL
End If
End If
IJSKIP:
If D1<>D2
DUBBLE=0
Else
Inc DUBBLE
End If
If IJX=3
DUBBLE=0
IJX=0
End If
Paste Bob 1,1,D1+19 : Paste Bob 20,30,D2+19
Screen 2
Paste Bob 472,30,D1+97 : Paste Bob 530,30,D2+103
Screen 0
Wait Vbl
If DUBBLE=3
CLRINFO
LOKATE[23,18]
CHPRT["Three Doubles in a row!"]
LOKATE[23,20]
CHPRT["Sorry, but you must go to Jail."]
Gosub JAIL
End If
CLRINFO
If PPOS(L)<>41
Gosub MP
PPOS(L)=PPOS(L)+ROL
If FP$="y"
Play %100,90,2
Play Off
Wait 9
End If
If PPOS(L)>40
PPOS(L)=PPOS(L)-40 : PM(L)=PM(L)+200
End If
SKIP2:
UDATEPROP
PRTINFO[PPOS(L)]
If PPOS(L)=11
Gosub CUTEREMARK
End If
TEMP=0
PO=PROPOWN(PPOS(L))
If PPOS(L)=39
PM(L)=PM(L)-RENT(39,0)
If PARKING$="y"
PARKING=PARKING+RENT(39,0)
End If
End If
UDATEMONEY
PROP
UDATEMONEY
If PO<>PROPOWN(PPOS(L))
DPEN[14]
LOKATE[23,16]
If PRICE(PPOS(L))>0
CHPRT["Owner - "+Pen$(PC(PROPOWN(PPOS(L))))+PL$(PROPOWN(PPOS(L)))]
End If
DPEN[14]
End If
If RENT(PPOS(L),0)=1003
DLMOOSE=1
Gosub CHANCE
If MOV>0
MOV=0 : Wait 2*DEL : CLRINFO : Goto SKIP2
End If
End If
If RENT(PPOS(L),0)=1000
DLMOOSE=1
Gosub CCHEST
If MOV>0
MOV=0 : Wait 2*DEL : CLRINFO : Goto SKIP2
End If
End If
UDATEMONEY
If PPOS(L)=31
Wait 6*DEL : Gosub JAIL
End If
If DUBBLE>0 and IJX<>3
Wait Vbl
Bell : Bell : Goto ROLL
End If
End If
End If
IJX=0
MOV=0
YOURDEAD:
Inc L
If L>NP
L=1
If PM$="y"
Inc PMT
For J=1 To 40
If LCT(J)<0
Inc LCT(J)
If LCT(J)=0
Gosub LOANCALL
End If
End If
Next J
If PMT=PMR
PMT=0 : PMR=Rnd(2)+4
For J=1 To NP
TEMP(J)=PPOS(J)
Next J
Gosub PMASTER
For J=1 To NP
PPOS(J)=TEMP(J)
Next J
Wait Vbl
CLRINFO
PRTINFO[PPOS(NP)]
End If
End If
L=1
End If
Wait Vbl
If DLMOOSE=0
Gosub UPINFO
Else
DLMOOSE=0
End If
Goto ROLL
End
MP:
For J=PPOS(L)+1 To PPOS(L)+ROL : K=J
If K>40 Then K=K-40
If K>21
Bob L,BX(K),BY(K),Hrev(PLPC(L))
Screen 2
Wait Vbl
Bob L+4,SX(K),SY(K),Hrev(DLPC(L))
Else
Bob L,BX(K),BY(K),PLPC(L)
Screen 2
Wait Vbl
Bob L+4,SX(K),SY(K),DLPC(L)
End If
If FP$="n"
Play %100,90,2
Play Off
End If
Wait DEL
Wait Vbl
Screen 0
Next J
Return
LOANCALL:
JUNK=LOAN(J)
JUNK2=(LCST(J)/10)+LCST(J)
Wait 6*DEL
Bell 10
Wait DEL
Bell 10
Wait DEL
Bell 10
Wait 6*DEL
CLRINFO
LOKATE[23,12]
DPEN[14]
CHPRT["The loan on the following properties"]
LOKATE[23,13]
CHPRT["is being called"]
If RENT(J,0)=1002
JUNK3=14
For XX=6 To 36 Step 10
Inc JUNK3
LOKATE[23,JUNK3]
CHPRT[Pen$(PCOLOR(XX))+PROP$(XX)+Space$(3)]
PM(PROPOWN(XX))=PM(PROPOWN(XX))-220
Next XX
Else
LOKATE[23,15]
CHPRT[Pen$(PCOLOR(J))+PROP$(J)+Space$(3)]
PM(PROPOWN(J))=PM(PROPOWN(J))-(PRICE(J)+(PRICE(J)/10))
LOKATE[23,16]
CHPRT[Pen$(PCOLOR(SET1(J)))+PROP$(SET1(J))+Space$(3)]
PM(PROPOWN(SET1(J)))=PM(PROPOWN(SET1(J)))-(PRICE(SET1(J))+(PRICE(SET1(J))/10))
If SET1(J)<>SET2(J)
LOKATE[23,17]
CHPRT[Pen$(PCOLOR(SET2(J)))+PROP$(SET2(J))+Space$(3)]
PM(PROPOWN(SET2(J)))=PM(PROPOWN(SET2(J)))-(PRICE(SET2(J))+(PRICE(SET2(J))/10))
End If
End If
LC:
JUNK$="" : JUNK=0 : JUNK2=0
Wait 15*DEL
UDATEMONEY
UDATEBOBS
CLRINFO
Return
PMASTER:
JUNK=0 : JUNK2=0 : JUNK3=0
For J=1 To 40
If PRICE(J)>0 and PROPOWN(J)=0
Inc JUNK : PMS(JUNK)=J
End If
Next J
If JUNK>0
Bell : Wait 5 : Bell : Wait 5 : Bell
Wait 10*DEL
CLRINFO
Wait Vbl
TEMPL=L
JUNK3=PPOS(L)
Gosub LESS
M=Rnd(NP-1)+1
If JUNK>1
X=Rnd(JUNK-1)+1
Else
X=JUNK
End If
PPOS(L)=PMS(X)
Gosub PMAUCTION
L=TEMPL
PPOS(L)=JUNK3
JUNK2=0 : JUNK3=0
UDATESETS
UDATEMONEY
UDATEBOBS
Wait 6*DEL
CLRINFO
PRTINFO[PPOS(NP)]
Else
BUYBACK:
Bell 50
Wait DEL
Bell 50
Wait DEL
Bell 30
Wait 10*DEL
AUC=0
For X=1 To 4
AUCT(X)=0
Next X
BB2:
JUNK=Rnd(39)+1
If PRICE(JUNK)=0
Goto BB2
End If
CLRINFO
DPEN[10]
LOKATE[23,12]
CHPRT["Buyback"]
BBJ=3
BB(1)=JUNK : BB(2)=SET1(JUNK) : BB(3)=SET2(JUNK)
If BB(2)=BB(3)
BBJ=2
End If
If RENT(JUNK,0)=1002
BBJ=4
BB(1)=6 : BB(2)=16 : BB(3)=26 : BB(4)=36
End If
If RENT(JUNK,0)=1005
BBJ=2
BB(1)=13 : BB(2)=29
End If
For J=1 To NP
JUNK=0
For JJ=1 To BBJ
If PROPOWN(BB(JJ))=J
Inc JUNK
End If
Next JJ
If JUNK=1
For JJ=1 To BBJ
If PROPOWN(BB(JJ))=J
If CURRENT(BB(JJ))=0
PM(J)=PM(J)+(PRICE(BB(JJ))/2-(PRICE(BB(JJ))/10))
Else
PM(J)=PM(J)+PRICE(BB(JJ))
End If
PROPOWN(BB(JJ))=0
UFILL[BB(JJ),J]
Inc AUC : AUCT(AUC)=BB(JJ)
End If
Next JJ
End If
Next J
DPEN[14]
LOKATE[23,14]
CHPRT[Pen$(14)+"The following properties will be bought back."]
If AUC>0
For J=1 To AUC
LOKATE[23,15+J]
CHPRT[Pen$(PCOLOR(AUCT(J)))+PROP$(AUCT(J))+Space$(3)]
Next J
DPEN[14]
JUNK=0
UDATEMONEY
UDATESETS
JUNK=PPOS(L)
TEMPL=L
For J=1 To AUC
CLRINFO
Gosub LESS
M=Rnd(NP-1)+1
PPOS(L)=AUCT(J)
PMS(X)=AUCT(J)
Gosub PMAUCTION
UDATESETS
UDATEMONEY
Next J
Else
LOKATE[23,16]
DPEN[PCOLOR(BB(1))]
CHPRT["* NONE *"]
DPEN[14]
Wait 10*DEL
End If
Wait 85
UDATESETS
UDATEMONEY
CLRINFO
L=TEMPL
PPOS(L)=JUNK
JUNK=0
PRTINFO[PPOS(NP)]
End If
CLRINFO
PRTINFO[PPOS(NP)]
Clear Key
Return
LESS:
For L=1 To NP
TWORTH
TW(L)=WORTH
Next
LEAST=1
For X=1 To NP-1
If TW(LEAST)>TW(X+1)
LEAST=X+1
End If
Next X
L=LEAST-1
If L=0
L=NP
End If
Return
PMAUCTION:
LOKATE[23,12]
CHPRT["Auction"]
LOKATE[23,14]
CHPRT[Pen$(PCOLOR(PMS(X)))+PROP$(PMS(X))+Pen$(14)+" will be auctioned off"+Space$(6)]
LOKATE[23,15]
CHPRT["to the highest bidder."]
Wait 50
CLRINFO
PRTINFO[PPOS(L)]
PM2=L
PM3=PPOS(L)
L=Rnd(NP-1)+1
PPOS(L)=PMS(X)
PM1=1
COMEONALONG
PM1=0
L=PM2
PPOS(L)=PM3
Return
INJAIL:
IJX=0
Inc JAILOUT(L)
CLRINFO
LOKATE[23,12]
CHPRT["In Jail"]
Rem get out of jail free card
If GOOJFCC=L or GOOJFC=L
Ink 0
Bar 182,104 To 560,167
Wait Vbl
LOKATE[23,17]
CHPRT["You have a 'Get Out Of Jail Free' card."]
LOKATE[23,19]
CHPRT["Do you wish to use it? (Y/n) "]
Clear Key
IJKEY:
If COMPPLY(L)=1
If PP(L)=3 and JAILOUT(L)<3
Goto JAIL3
End If
Wait 3*DEL
Clear Key
Put Key "y"
End If
KEYGET
If A$=Chr$(13)
A$="y"
End If
LOKATE[23,20]
CHPRT[A$]
A$=Lower$(A$)
If A$="y"
If GOOJFCC=L
GOOJFCC=0
Screen 2
Ink 11
Paint 180,(-50+(50*BVD(L)+23)),1
Ink 14
Screen 0
Else
GOOJFC=0
Screen 2
Ink 11
Paint 180,(-50+(50*BVD(L)+17)),1
Ink 14
Screen 0
End If
PPOS(L)=11
Bob L,BX(11),BY(11),PLPC(L)
Screen 2
Bob L+4,SX(11),SY(11),DLPC(L)
Screen 0
Wait Vbl
JAILOUT(L)=0
IJX=1
Return
End If
End If
Rem pay $50
If JAILOUT(L)<3
Ink 0
Bar 182,104 To 560,167
Wait Vbl
LOKATE[23,17]
CHPRT["Do you want to pay "+C$+Str$(50*QQ)+" to get out?"]
LOKATE[23,18]
CHPRT["(Y/n)"]
Clear Key
IJKEY2:
If COMPPLY(L)=1
If PM(L)<=50
Clear Key
Put Key "n"
Goto JAIL4
End If
If PP(L)<>3
Wait 3*DEL
JUNK=0
For J=11 To 21
JUNK=JUNK+HOUSE(J)
Next J
If PM(L)>50 and JUNK<10
Clear Key
Put Key "y"
Else
Clear Key
Put Key "n"
End If
JUNK=0
Else
JAIL3:
JUNK=0
For J=1 To 40
If PRICE(J)>0 and PROPOWN(J)=0
JUNK2=PROPOWN(SET1(J)) : JUNK3=PROPOWN(SET2(J))
If PM$="y"
If JUNK2=0 or JUNK3=0
JUNK=JUNK+1
End If
End If
If JUNK2=JUNK3
JUNK=JUNK+1
End If
End If
Next J
If JUNK>0
Clear Key
Put Key "y"
Else
Clear Key
Put Key "n"
If GOOJFC=L or GOOJFCC=L
Wait 3*DEL
Ink 0
Bar 182,104 To 560,167
Wait Vbl
LOKATE[23,17]
CHPRT["Do you want to pay "+C$+Str$(50*QQ)+" to get out?"]
LOKATE[23,18]
CHPRT["(Y/n)"]
Clear Key
Put Key "n"
Wait 3*DEL
End If
End If
JUNK=0 : JUNK2=0 : JUNK3=0
End If
End If
JAIL4:
KEYGET
If A$=Chr$(13)
A$="y"
End If
LOKATE[23,20]
CHPRT[A$]
A$=Lower$(A$)
If A$="y"
PM(L)=PM(L)-50
UDATEMONEY
PPOS(L)=11
IJX=2
Bob L,BX(11),BY(11),PLPC(L)
Screen 2
Bob L+4,SX(11),SY(11),DLPC(L)
Screen 0
Wait Vbl
JAILOUT(L)=0
Return
End If
End If
Rem try to roll doubles
D1=Rnd(5)+1 : D2=Rnd(5)+1 : ROL=D1+D2
If QD$="n"
DICEROLL
End If
Paste Bob 1,1,D1+19 : Paste Bob 20,30,D2+19
Screen 2
Paste Bob 472,30,D1+97 : Paste Bob 530,30,D2+103
Screen 0
Wait Vbl
If D1=D2
PPOS(L)=11
IJX=3
JAILOUT(L)=0
Return
End If
IJX=0
Ink 0
Bar 182,104 To 560,167
Boom
LOKATE[23,17]
Wait Vbl
CHPRT["Sorry,"]
LOKATE[23,18]
CHPRT["You didn't roll doubles"]
If JAILOUT(L)=3
LOKATE[23,19]
QQUEST[50]
CHPRT["You pay "+Pen$(2)+C$+QQ$]
DPEN[14]
PPOS(L)=11
IJX=3
JAILOUT(L)=0
PM(L)=PM(L)-50
End If
Wait 6*DEL
CLRINFO
Return
JAIL:
DUBBLE=0
JX=(Rnd(2)+1)
On JX Proc M1,M2,M3
If PPOS(L)<11
For J=PPOS(L)-1 To 1 Step -1 : K=J
Bob L,BX(K),BY(K),PLPC(L)
Screen 2
Bob L+4,SX(K),SY(K),DLPC(L)
Play %100,90,2
Play Off
Screen 0
Wait DEL
Next J
Bob L,BX(40),BY(40),Hrev(PLPC(L))
Screen 2
Bob L+4,SX(40),SY(40),Hrev(DLPC(L))
Play %100,90,2
Play Off
Screen 0
Wait DEL
PPOS(L)=40
End If
If PPOS(L)>11
For J=PPOS(L)-1 To 11 Step -1 : K=J
If K>21
Bob L,BX(K),BY(K),Hrev(PLPC(L))
Screen 2
Bob L+4,SX(K),SY(K),Hrev(DLPC(L))
Else
Bob L,BX(K),BY(K),PLPC(L)
Screen 2
Bob L+4,SX(K),SY(K),DLPC(L)
End If
Play %100,90,2
Play Off
Screen 0
Wait DEL
Next J
End If
Wait DEL
Bob L,BX(41),BY(41),PLPC(L)
Screen 2
Bob L+4,SX(41),SY(41),DLPC(L)
Screen 0
Wait Vbl
Play %100,90,2
Play Off
PPOS(L)=41
CLRINFO
Wait Vbl
PRTINFO[41]
UDATEPROP
Return
INFO:
JUNK1=43 : JUNK2=44
If DL$="y"
JUNK1=41 : JUNK2=42
End If
Repeat
DPEN[14]
Gosub CLICK
LOKATE[23,12]
DPEN[PCOLOR(X)]
If D3=0
If X=45
D3=1
PROP$(46)="The other one."
End If
If X=46
D3=1
PROP$(45)="The other one."
End If
End If
If DL$="n" or X<41
CHPRT[PROP$(X)]
End If
DPEN[14]
If PRICE(X)>0
LOKATE[23,13] : QQUEST[PRICE(X)] : CHPRT["Price "+C$+QQ$]
End If
If X=39
LOKATE[23,14]
If COUNTRY=1 or COUNTRY=8 or COUNTRY=9
CHPRT["Pay $75"]
Else
QQUEST[100]
CHPRT["Pay "+C$+QQ$]
End If
End If
If PRICE(X)>0
QQUEST[RENT(X,0)]
If RENT(X,0)<999
LOKATE[23,14] : CHPRT["Rent "+C$+QQ$+" Owner - "+Pen$(PC(PROPOWN(X)))+PL$(PROPOWN(X))]
Else
LOKATE[23,14] : CHPRT["Owner - "+Pen$(PC(PROPOWN(X)))+PL$(PROPOWN(X))]
End If
End If
DPEN[14]
If RENT(X,1)<>0
LOKATE[23,15] : QQUEST[RENT(X,1)] : CHPRT["With one house ="+QQ$+" ."]
LOKATE[23,16] : QQUEST[RENT(X,2)] : CHPRT["With two houses ="+QQ$+" ."]
LOKATE[23,17] : QQUEST[RENT(X,3)] : CHPRT["With three houses ="+QQ$+" ."]
If QS$="n"
LOKATE[23,18] : QQUEST[RENT(X,4)] : CHPRT["With four houses ="+QQ$+" ."]
End If
LOKATE[23,19] : QQUEST[RENT(X,5)] : CHPRT["With Hotel ="+QQ$+" ."]
LOKATE[23,20] : QQUEST[HOUSECOST(X)] : CHPRT["Houses cost "+C$+QQ$+" each."]
End If
If X=5
LOKATE[23,15]
If CH$="y"
CHPRT["Pay 10%"]
LOKATE[23,16] : CHPRT["or"]
LOKATE[23,17] : CHPRT[C$+"200"]
Else
QQUEST[200]
CHPRT[" Pay "+C$+QQ$]
End If
End If
If X=13 or X=29
QQUEST[4]
LOKATE[23,15] : CHPRT["If one 'Utility' is owned rent is "+QQ$]
LOKATE[23,16] : CHPRT["times amount shown on dice."]
QQUEST[10]
LOKATE[23,18] : CHPRT["If both 'Utilities' are owned rent is "+QQ$]
LOKATE[23,19] : CHPRT["times amount shown on dice."]
End If
If X=6 or X=16 or X=26 or X=36
LOKATE[23,15] : QQUEST[25] : CHPRT["Rent "+C$+QQ$+"."]
LOKATE[23,16]
If COUNTRY<>2 and COUNTRY<>3 and COUNTRY<>8 and COUNTRY<>9
QQUEST[50] : CHPRT["If 2 R.R.'s are owned "+QQ$+"."]
Else
If COUNTRY=2 or COUNTRY=3
CHPRT["If 2 railways are owned 50."]
End If
If COUNTRY=8
CHPRT["If 2 fighters are owned 50."]
End If
If COUNTRY=9
CHPRT["If 2 speedways are owned 50."]
End If
End If
LOKATE[23,17] : QQUEST[100] : CHPRT["If 3 '' '' '' "+QQ$+"."]
LOKATE[23,18] : QQUEST[200] : CHPRT["If 4 '' '' '' "+QQ$+"."]
End If
Until X=JUNK1 or X=JUNK2
JUNK1=0 : JUNK2=0
Return
ZON:
Reserve Zone
Reserve Zone 47
If DL$="n"
Restore SPOTDATA
For J=1 To 47
Read X1,Y1,X2,Y2
Set Zone J,X1,Y1 To X2,Y2
Next J
Else
Restore DLSPOTDATA
For J=1 To 47
Read X1,Y1,X2,Y2
Set Zone J,X1,Y1 To X2,Y2
Next J
End If
Restore CCDATA
Return
End
PIECENAMEDATA:
Data "Car ","Battleship","Horse","Dog "
Data "Shoe","WheelBarrow","Iron","Thimble"
Data "TopHat","Train","Cannon","Boing"
Data "MoneyBag","PiggyBank","AirPlane","Teapot"
CHIPNAMEDATA:
Data "Portia","Daphne","Agnus","Paula","Denise","Fleecy"
Data "Gary","Buster","Alice","McEwen","Amy","Petro"
TITLEHOTSPOTS:
Data 432,56,490,68,491,56,549,68
Data 432,69,490,81,491,69,549,81
Data 432,82,490,94,491,82,549,94
Data 432,95,490,107,491,95,549,107
Data 432,108,490,120,491,108,549,120
Data 432,121,490,133,491,121,549,133
Data 432,134,490,146,491,134,549,146
Data 432,147,490,159,491,147,549,159
Data 432,160,490,172,491,160,549,172
Data 432,173,490,185,491,173,549,185
Data 432,186,490,198,491,186,549,198
Data 88,142,146,153,88,154,146,165,88,166,146,177,88,178,146,189
Data 18,64,77,75,18,79,77,90,577,185,635,197
Data 18,95,77,106
Data 10,25,71,41,72,25,132,41,133,25,194,41
Data 194,25,254,41,255,25,315,41,316,25,376,41,377,25,437,41
Data 438,25,498,41,499,25,558,41
Data 8,117,124,128
Data 0,0,639,199
PICKPIECEDATA:
Data 208,52,262,74,264,52,318,74,320,52,372,74
Data 208,76,262,98,264,76,318,98,320,76,372,98
Data 208,100,262,123,264,100,318,123,320,100,372,123
Data 374,52,428,74,374,76,428,98,374,100,428,123
Data 208,125,262,148,264,125,318,148,320,125,372,148
Data 375,125,428,148
Data 502,93,560,105
Rem X and Y's for "Pick Your Piece"
Data 214,50,262,73,268,50,316,73,320,50,368,73,214,76,262,99
Data 268,76,316,99,320,76,368,99,214,102,262,125,268,102,316,125
Data 322,102,368,125,374,50,422,73,374,76,422,99,374,102,422,125
Data 214,128,262,151,268,128,316,151,320,128,368,151,374,128,422,151
Data 292,160,350,172
Rem Deluxe version
PIECEPOSDATA:
Data 292,192,265,192,244,192,224,192,203,192
Data 176,192,149,192,128,192,107,192,86,192
Data 52,192,52,165,52,149,52,131,52,117
Data 52,99,52,79,52,65,52,50,52,35
Data 58,17,104,12,125,12,146,12,167,12
Data 194,12,221,12,242,12,263,12,285,12
Data 312,17,316,35,316,50,316,65,316,79
Data 316,99,316,118,316,133,316,149,316,165
Data 64,178
Rem X and Y positions of pieces on board
Data 624,192,580,196,540,196,500,196,460,196
Data 420,196,380,196,340,196,300,196,260,196
Data 220,199,210,173,210,156,210,139,210,122
Data 210,104,210,88,210,70,210,54,210,37
Data 220,20,260,18,300,18,340,18,380,18
Data 420,18,460,18,500,18,540,18,580,18
Data 624,17,628,37,628,54,628,71,628,88
Data 628,106,628,122,628,139,628,157,628,173
Data 224,189
Rem Deluxe positions
PROPDATA:
Data "Go",,,,,,,,,4,,,,0.1,0,0
Data "Mediterranean Ave.",60,2,10,30,90,160,250,50,6,4,4,120,1.5,14,29
Data "Community Chest",,1000,,,,,,,9,,,,0.1,0,0
Data "Baltic Ave.",60,4,20,60,180,320,450,50,6,2,2,120,1,14,34
Data "Income Tax",,1001,,,,,,,14,,,,0.1,0,0
Data "Reading Railroad",200,1002,,,,,,,10,16,36,800,2.9,74,8
Data "Oriental Ave.",100,6,30,90,270,400,550,50,3,9,10,320,1,38,30
Data "Chance",,1003,,,,,,,4,,,,0.1,0,0
Data "Vermont Ave.",100,6,30,90,270,400,550,50,3,7,10,320,1,38,34
Data "Connecticut Ave.",120,8,40,100,300,450,600,50,3,7,9,320,1,38,40
Data "Just Visiting",,1004,,,,,,,8,,,,0.1,0,0
Data "St. Charles Place",140,10,50,150,450,625,750,100,7,14,15,440,2,64,30
Data "Electric Company",150,1005,,,,,,,14,29,29,300,1,132,17
Data "States Ave.",140,10,50,150,450,625,750,100,7,12,15,440,1.5,64,34
Data "Virginia Ave.",160,12,60,180,500,700,900,100,7,14,12,440,1.5,64,40
Data "Pennsylvania R.R.",200,1002,,,,,,,10,6,26,800,2.4,114,8
Data "St. James Place",180,14,70,200,550,750,950,100,5,19,20,560,3,88,30
Data "Community Chest",,1000,,,,,,,9,,,,0.1,0,0
Data "Tennessee Ave.",180,14,70,200,550,750,950,100,5,17,20,560,3,88,34
Data "New York Ave.",200,16,80,220,600,800,1000,100,5,17,19,560,2.5,88,40
Data "Free Parking",,1006,,,,,,,4,,,,0.1,0,0
Data "Kentucky Ave.",220,18,90,250,700,875,1050,150,4,24,25,680,1.5,114,30
Data "Chance",,1003,,,,,,,4,,,,0.1,0,0
Data "Indiana Ave.",220,18,90,250,700,875,1050,150,4,22,25,680,1.5,114,34
Data "Illinois Ave.",240,20,100,300,750,925,1100,150,4,22,24,680,2.5,114,40
Data "B. & O. Railroad",200,1002,,,,,,,10,36,16,800,2.4,146,8
Data "Atlantic Ave.",260,22,110,330,800,975,1150,150,9,28,30,800,1,138,30
Data "Ventnor Ave.",260,22,110,330,800,975,1150,150,9,27,30,800,1,138,34
Data "Water Works",150,1005,,,,,,,14,13,13,,1,154,21
Data "Marvin Gardens",280,24,120,360,850,1025,1200,150,9,27,28,800,1,138,40
Data "GO TO JAIL",,1007,,,,,,,1,,,,0.1,0,0
Data "Pacific Ave.",300,26,130,390,900,1100,1275,200,2,33,35,920,1,163,30
Data "No. Carolina Ave.",300,26,130,390,900,1100,1275,200,2,32,35,920,1,163,34
Data "Community Chest",,1000,,,,,,,9,,,,0.1,0,0
Data "Pennsylvania Ave.",320,28,150,450,1000,1200,1400,200,2,32,33,920,1,163,40
Data "Short Line R.R.",200,1002,,,,,,,10,26,6,800,2.4,186,8
Data "Chance",,1003,,,,,,,4,,,,0.1,0,0
Data "Park Place",350,35,175,500,1100,1300,1500,200,1,40,40,750,1,186,30
Data "Luxury Tax",,75,,,,,,,14,,,,0.1,0,0
Data "Boardwalk",400,50,200,600,1400,1700,2000,200,1,38,38,750,2,186,34
Data "In Jail",,1008,,,,,,,14,,,,0.1,0,0
Data "Just Visiting",,1004,,,,,,,8,,,,0.1,0,0
Data "OK",,,,,,,,,2,,,,0.1,0,0
Data "Cancel",,,,,,,,,4,,,,0.1,0,0
Data "One of the dice.",,,,,,,,,14,,,,0.1,0,0
Data "One of the dice.",,,,,,,,,14,,,,0.1,0,0
Data "Click on a property.",,,,,,,,,4,,,,0.1,0,0
Rem property data
Rem format= Data name,price,rent,w1house,w2house,w3house,w4house,whotel,hcost,color,set1,set2
Rem if rent >999 then it's a special property
Rem 18 chars max
SPOTDATA:
Data 572,173,639,199,532,172,570,198,490,172,530,198,448,172,488,198,406,172,446,198
Data 340,172,404,198,298,172,337,198,256,172,295,198,214,172,254,198,174,172,211,198
Data 104,173,121,199,104,159,171,171,104,139,171,157,104,125,171,137,104,111,171,123
Data 104,87,171,109,104,73,171,85,104,58,171,71,104,43,171,56,104,28,171,41
Data 104,0,169,26,172,0,211,26,214,0,254,26,256,0,295,26,298,0,337,26
Data 340,0,404,26,407,0,445,26,448,0,485,26,488,0,531,26,535,0,571,26
Data 574,0,639,26,572,28,639,41,572,43,639,56,572,58,639,71,572,73,639,86
Data 572,88,639,111,572,113,639,126,572,128,639,141,572,143,639,156,572,158,639,171
Data 124,173,171,191,102,192,171,199,20,153,78,165,20,173,78,185
Data 1,1,54,25,20,30,73,54,0,0,639,199
Rem hot spot data
DLSPOTDATA:
Data 600,182,639,199,560,182,600,199,520,182,560,199,480,182,520,199,440,182,480,199
Data 400,182,440,199,360,182,400,199,320,182,360,199,280,182,320,199,240,182,280,199
Data 200,182,240,199,200,165,240,182,200,148,240,165,200,131,240,148,200,114,240,131
Data 200,97,240,114,200,80,240,97,200,63,240,80,200,46,240,63,200,29,240,46
Data 200,11,240,29,240,11,280,29,280,11,320,29,320,11,360,29,360,11,400,29
Data 400,11,440,29,440,11,480,29,480,11,520,29,520,11,560,29,560,11,600,29
Data 600,11,639,29,600,29,639,46,600,46,693,63,600,63,639,80,600,80,639,97
Data 600,97,639,114,600,114,639,131,600,131,639,148,600,148,639,165,600,165,639,182
Data 198,0,268,10,269,0,348,10,349,0,418,10,350,0,482,10,483,0,542,10,543,0,639,10
Data 0,0,639,199
Rem Deluxe data
CCDATA:
Data "FROM SALE OF STOCK YOU GET "+C$+JUNK1$,,,45,,1,380,8,630,94
Data "YOU INHERIT "+C$+JUNK2$,,,100,,2,6,3,239,101
Data "XMAS FUND MATURES",,"COLLECT "+C$+JUNK2$,100,,1,12,4,200,97
Data "INCOME TAX REFUND",,"COLLECT "+C$+JUNK3$,20,,2,246,3,428,100
Data "LIFE INSURANCE MATURES",,"COLLECT "+C$+JUNK2$,100,,1,466,109,626,194
Data "RECEIVE FOR SERVICES "+C$+JUNK4$,,,25,,1,12,105,232,194
Data "BANK ERROR IN YOUR FAVOR",,"COLLECT "+C$+JUNK5$,200,,3,10,105,216,192
Data "YOU HAVE WON 2ND PRIZE IN A BEAUTY CONTEST",,"COLLECT "+C$+JUNK6$,10,,3,486,1,636,96
Data "PAY SCHOOL TAX OF "+C$+JUNK7$,,,-150,,1,236,100,454,197
Data "PAY HOSPITAL "+C$+JUNK2$,,,-100,,2,10,106,240,192
Data "DOCTOR'S FEE",,"PAY "+C$+JUNK8$,-50,,3,254,3,468,89
Data "GET OUT OF JAIL, FREE","THIS CARD MAY BE KEPT UNTIL NEEDED OR SOLD",,,1,3,10,9,240,80
Data "Grand Opera Opening","COLLECT "+C$+JUNK8$+" FROM EVERY PLAYER","FOR OPENING NIGHT SEATS",,2,2,454,7,624,98
Data "YOU ARE ASSESSED FOR STREET REPAIRS",""+C$+JUNK9$+" PER HOUSE",""+C$+JUNK10$+" PER HOTEL",,3,1,208,4,372,99
Data "GO TO JAIL - Go Directly to Jail","DO NOT PASS GO","DO NOT COLLECT "+C$+JUNK5$,,4,2,248,101,456,188
Data "ADVANCE TO GO",,"(COLLECT "+C$+JUNK5$+")",,5,3,258,106,486,195
Rem Community Chest data
Rem format = text,money(+or-), move - 0=normal 1or higher = special like
Rem Goto jail or property tax
CHANCEDATA:
Data "BANK PAYS YOU DIVIDEND OF "+C$+JUNK1$,,,,50,,4,6,4,346,91
Data "YOUR BUILDING AND LOAN MATURES",,"COLLECT "+C$+JUNK2$,,150,,2,4,94,150,188
Data "PAY POOR TAX OF "+C$+JUNK3$,,,,-15,,2,154,92,314,190
Data "Advance token to the nearest Railroad and"
Data "pay owner Twice the Rental to which he is"
Data "otherwise entitled. - If Railroad is"
Data "unowned, you may buy it from the Bank.",,1,1,4,2,298,83
Data "Advance token to the nearest Railroad and"
Data "pay owner Twice the Rental to which he is"
Data "otherwise entitled. - If Railroad is"
Data "unowned, you may buy it from the Bank.",,1,1,4,2,298,83
Data "THIS CARD MAY BE KEPT UNTIL NEEDED OR SOLD",,"GET OUT OF JAIL FREE",,,2,1,430,91,634,177
Data "GO BACK 3 SPACES",,,,,3,3,10,3,312,100
Data "You Have Been ELECTED CHAIRMAN OF THE BOARD",,"PAY EACH PLAYER "+C$+JUNK1$,,,4,1,2,90,202,163
Data "GO DIRECTLY TO JAIL","DO NOT PASS GO","DO NOT COLLECT "+C$+JUNK4$,,,5,4,0,95,344,172
Data "ADVANCE TO GO",,"(COLLECT "+C$+JUNK4$+")",,,6,2,332,99,594,194
Data "Make General Repairs On All Your Property","FOR EACH HOUSE PAY "+C$+JUNK5$,"FOR EACH HOTEL "+C$+JUNK6$,,,7,1,468,1,636,86
Data "ADVANCE TO ST. CHARLES PLACE",,"IF YOU PASS GO","COLLECT "+C$+JUNK4$,,8,2,2,1,302,74
Data "TAKE A RIDE ON THE READING",,"IF YOU PASS GO","COLLECT "+C$+JUNK4$,,9,2,308,2,520,94
Data "ADVANCE TOKEN TO NEAREST UTILITY."
Data "If UNOWNED you may buy it from the bank."
Data "If OWNED, throw dice and pay owner"
Data "a total ten times the amount thrown",,10,1,300,0,456,81
Data "TAKE A WALK ON THE BOARDWALK",,"ADVANCE TOKEN TO BOARDWALK",,,11,3,232,97,568,198
Data "ADVANCE TO ILLINOIS AVE.",,,,,12,1,208,84,416,172
Rem Chance data
Rem format is same as Community Chest
GODATA:
Data 572,174
Data 572,188
Data 614,174
Data 614,188
Data 610,190
Data 630,190
Data 610,198
Data 630,198
RRDATA:
Data 25,50,100,200
CUTE_REMARKS_WHEN_PASS_SOMEONE_IN_JAIL_DATA:
Data "Bake me a cake with a file in it."
Data "Call my lawyer."
Data "I hate wearing stripes."
Data "What are you looking at?!?!"
Data "Just call me #67312478."
Data "'Iron bars do not a prison make'"
Data "I was framed I tell you!"
Data "Where's Perry Mason when you need him?"
BRITISH_VERSION_DATA:
Data "Go","Old Kent Road","Community Chest","Whitechapel Road","Income Tax"
Data "King's Cross Stat.","Angel Islington","Chance","Euston Road"
Data "Pentonville Road"
Data "Just Visiting","Pall Mall","Electric Company","Whitehall"
Data "Northumberland Ave","Marylebone Station","Bow Street","Community Chest"
Data "Marlborough Street","Vine Street"
Data "Free Parking","Strand","Chance","Fleet Street","Trafalgar Square"
Data "Fenchurch St Stat.","Leicester Square","Coventry Street","Water Works"
Data "Picadilly"
Data "Go To Jail","Regent Street","Oxford Street","Community Chest","Bond Street"
Data "Liverpool St Stat.","Chance","Park Lane","Super Tax","Mayfair"
Data "In Jail"
AUSTRALIAN_VERSION_DATA:
Data "Go","Todd Street","Community Chest","Smith Street","Income Tax"
Data "Perth Station","Salamanca Place","Chance","Davey Street","Macquarie Street"
Data "Just Visiting","William Street","Australia Post","Barrack Street"
Data "Hay Street","Adelaide Station","North Terrace","Community Chest"
Data "Victoria Square","Rundle Mall"
Data "Free Parking","Stanley Street","Chance","Petries Bight","Wickham Terrace"
Data "Flinders St Stat.","Collins Street","Elizabeth Street"
Data "Telecom Australia","Bourke Street"
Data "Go To Jail","Castlereagh Street","George Street","Community Chest"
Data "Pitt Street","Sydney Station","Chance","Flinders Way","Sales Tax"
Data "King's Avenue","In Jail"
SWEDISH_VERSION_DATA:
Data "G�","V�sterl�nggatan","Allm�nning","Hornsgatan","Inkomstskatt"
Data "S�dra Station","Folkungagatan","Chans","G�tgatan","Ringv�gen"
Data "I F�ngelse p�Bes�k","S:t Eriksgatan","Elverket","Odengatan"
Data "Vallhallav�gen","�stra Station","Sturegatan","Allm�nning"
Data "Karlav�gen","Narvav�gen"
Data "Parkering","Strandv�gen","Chans","Kungstr�dg�rdsg","Hamngatan"
Data "Central Station","Vasagatan","Kungsgatan","Vattenledningsverk"
Data "Stureplan"
Data "G� i f�ngelse","Gustav Adolfs Torg","Drottninggatan","Allm�nning"
Data "Diplomatstaden","Norra Station","Chans","Centrum","Extra skatt","Norrmalmstorg"
Data "F�ngelse"
GERMAN_VERSION_DATA:
Data "Los","Badstra�e","Gemeinschaftsfled","Turmstra�e","Einkommenssteuer"
Data "S�dbahnhof","Chausseestra�e","?","Elisenstra�e","Poststra�e"
Data "nur zu Besuch","Seestra�e","Elektrowerk","Hafenstra�e","Neue Stra�e"
Data "Westbahnhoff","M�hlenstra�e","Gemeinschaftsfeld","Wiener Stra�e"
Data "Berliner Stra�e"
Data "Free Parking","Theaterstra�e","?","Museumsstra�e","Opernplatz","Nordbahnhof"
Data "Lessingstra�e","Schillerstra�e","Wasserwerk","Goethestra�e"
Data "Politz","Rathausplatz","Haupstra�e","Gemeinschaftsfeld","Bahnhofstra�e"
Data "Hauptbahnhof","?","Parkstra�e","Zusatzsteuer","Schlo�allee"
Data "Gef�ngnis"
ITALIAN_VERSION_DATA:
Data "VIA","Vicolo Corto","PROBABILITA`","Vicolo Stretto","TASSA PATRIMONIALE"
Data "Stazione Sud","Bastioni GranSasso","IMPREVISTI","Viale Monterosa"
Data "Viale Vesuvio"
Data "TRANSITO","Via Accademia","SOCIETA` ELETTRICA","Corso Ateneo"
Data "Piazza Universita`","Stazione Ovest","Via Verdi","PROBABILITA`"
Data "Corso Raffaello","Piazza Dante"
Data "PARCHEGGIOGRATUITO","Via Marco Polo","IMPREVISTI","Corso Magellano"
Data "Largo Colombo","Stazione Nord","Viale Costantino","Viale Traianto"
Data "SOCIETA` ACQUA","PiazzaGiullioCesar"
Data "VIA IN PRIGIONE!","Via Roma","Corso Impero","PROBABILITA`","Largo Augusto"
Data "Stazione Est","IMPREVISTI","Viale dei Giardini","TASSA SUL LUSSO"
Data "ParcoDellaVittoria"
Data "PRIGIONE"
FRENCH_VERSION_DATA:
Data "DEPART","Boul de Belleville","CaisseDeCommunaut�","Rue Lecourbe"
Data "ImportsSurLeRevenu","Gare Montparnasse","Rue Vaugirard","Chance"
Data "Rue de Courcelles","Ave.DeLaR�publique"
Data "Simple Visite","BoulDeLaR�publique","Compagnie/d'�lect."
Data "Avenue de Neuilly","Rue de Paradis","Gare de Lyon","Avenue Mozart"
Data "CaisseDeCommunaut�","Boulevard StMichel","Place Pigalle"
Data "Parc Gratiut","Avenue Matignon","Chance","Boul. Malherbes"
Data "Avenue HenriMartin","Gare du nord","Faubourg St-Honor�"
Data "Place de la Bourse","Compagnie des Eaux","Rue La Fayette"
Data "Allez en PRISON","Avenue de Breteuil","Avenue Foch","CaisseDeCommunaut�"
Data "Boul des Capucines","Gare St-Lazare","Chance"
Data "Ave Champs Elys�es","Taxe de Luxe","Rue de la Paix"
Data "Prison"
STARWARS_VERSION_DATA:
Data "Go","DAGOBAH-Swamp","<Rebel Symbol>","DAGOBAH-Yoda's Hut","Docking Tax"
Data "Tie Fighter","HOTH-Echo Base","<Imperial Symbol>","HOTH-Frozen Plains"
Data "HOTH-North Ridge"
Data "Just Visiting","TATOOINE-Lars Home","Reactor Core","TATOOINE-MosEisley"
Data "TATOOINE-Jabba's","Millenium Falcon","YAVIN 4-War Room"
Data "<Rebel Symbol>","YAVIN 4-Temple","YAVIN 4-Throne Rm."
Data "Free Parking","CLOUDCITY-Platform","<Imperial Symbol>"
Data "CLOUDCITY-Chamber","CLOUDCITY-Reactor"
Data "X-Wing Fighter","DEATH STAR-L. Bay","DEATH STAR-Throne"
Data "Moisture farm","DEATH STAR-Core"
Data "Go To Jail","ENDOR-Forest","ENDOR-Shield Gen.","<Rebel Symbol>"
Data "ENDOR-Ewok Village","Star Destroyer","<Imperial Symbol>"
Data "CORUSCANT-Monument","Bounty","CORUSCANT-Palace"
Data "In Jail"
NASCAR_VERSION_DATA:
Data "Go","46-First Union","Community Chest","96-Caterpillar","Black Flag"
Data "CaliforniaSpeedway","31-Lowe's","Chance"
Data "36-Skittles","29-Cartoon Network"
Data "Just Visiting","42-Bellsouth","The Phone Company","7 -QVC"
Data "4 -Kodak Gold Film","Talladega Speedway","18-Interstate Batt"
Data "Community Chest","99-Exide Batteries","16-Family Channel"
Data "Free Parking","8 -Circuit City","Chance","17-Parts America"
Data "30-Pennziol","Charlotte Speedway","28-Texaco","10-Tide"
Data "The Gas Company","88-FordQualityCare"
Data "Go To Jail","6 -Valvoline","5 -Kellogg's","Community Chest","94-McDonalds"
Data "Daytona Speedway","Chance","24-Du Pont","Luxury Suite","3 -Goodwrench"
Data "In Jail"
CUTEREMARK:
For CRJJ=1 To NP
If PPOS(CRJJ)=41
LOKATE[23,15]
DPEN[PC(CRJJ)]
CHPRT[PL$(CRJJ)+Pen$(14)+" says: "]
CRX=Rnd(NCR)+1
LOKATE[23,16]
DPEN[11]
CHPRT[CR$(CRX)]
DPEN[14]
Wait 110
Return
End If
Next CRJJ
Return
CCHEST:
CCSTART:
Inc CC
If CC>16
CC=1
SHUFFLECHEST
End If
If CCSPEC(CC)=1 and GOOJFCC<>0
Goto CCSTART
End If
JUNK$="cc"
Gosub DLCC
JUNK$=""
Screen 2
Pen 0 : Paper 9
Screen 0
LOKATE[23,17]
CHPRT[CCHEST1$(CC)]
LOKATE[23,18]
CHPRT[CCHEST2$(CC)]
LOKATE[23,19]
CHPRT[CCHEST3$(CC)]
Screen 2
Pen 14 : Paper 0
Screen 0
PM(L)=PM(L)+CCMON(CC)
UDATEMONEY
If PARKING$="y" and CCMON(CC)<0
PARKING=PARKING-CCMON(CC)
End If
On CCSPEC(CC) Gosub CC1,CC2,CC3,CC4,CC5
If COMPPLY(L)=1
Wait 6*DEL
End If
Return
CC1:
Rem get out of jail free card
GOOJFCC=L
Screen 2
Ink 9
Paint 180,(-50+(50*BVD(L)+23)),1
Ink 14
Screen 0
Return
CC2:
Rem $50 from every player
PM(L)=PM(L)+(50*NP)
For CCJ=1 To NP
PM(CCJ)=PM(CCJ)-50
Next CCJ
UDATEMONEY
Return
CC3:
Rem street repairs
HOT=0 : HOU=0
For SRJ=1 To 40
If PROPOWN(SRJ)=L
If HOUSE(SRJ)=5
Inc HOT
Else
HOU=HOU+HOUSE(SRJ)
End If
End If
Next SRJ
Screen 2
Pen 0 : Paper 9
Screen 0
LOKATE[23,18]
CHPRT["You own"+Str$(HOU)+" houses and"+Str$(HOT)+" hotels."]
LOKATE[23,19]
SRSUM=(HOU*40)+(HOT*115)
QQUEST[SRSUM]
CHPRT["You have to pay "+Pen$(2)+" "+C$+QQ$+Pen$(14)+"."]
DPEN[14]
Screen 2
Pen 14 : Paper 0
Screen 0
PM(L)=PM(L)-SRSUM
UDATEMONEY
If COMPPLY(L)=1
Wait 12*DEL
End If
Return
CC4:
Rem go to jail
Gosub JAIL
MOV=1
Return
CC5:
Rem go to Go
If FCR=2
Wait 60
Else
Wait 6*DEL
End If
ROL=41-PPOS(L)
Gosub MP
PPOS(L)=PPOS(L)+ROL : If PPOS(L)>40 Then PPOS(L)=PPOS(L)-40 : PM(L)=PM(L)+200
MOV=1
Return
CHANCE:
CSTART:
Inc C
If C>16
C=1
SHUFFLECHANCE
End If
If CSPEC(C)=2 and GOOJFC<>0
Goto CSTART
End If
JUNK$="c"
Gosub DLC
JUNK$=""
Screen 2
Pen 0 : Paper 5
Screen 0
LOKATE[23,16]
CHPRT[CHANCE1$(C)]
LOKATE[23,17]
CHPRT[CHANCE2$(C)]
LOKATE[23,18]
CHPRT[CHANCE3$(C)]
LOKATE[23,19]
CHPRT[CHANCE4$(C)]
Screen 2
Pen 14 : Paper 0
Screen 0
PM(L)=PM(L)+CMON(C)
UDATEMONEY
If PARKING$="y" and CMON(C)<0
PARKING=PARKING-CMON(C)
End If
On CSPEC(C) Gosub C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12
If COMPPLY(L)=1
Wait 6*DEL
End If
Return
C1:
Rem advance token to nearest railroad
If FCR=2
Wait 100
Else
Wait 10*DEL
End If
MOV=2
If PPOS(L)=8 Then ROL=8
If PPOS(L)=23 Then ROL=3
If PPOS(L)=37 Then ROL=9
Gosub MP
PPOS(L)=PPOS(L)+ROL : If PPOS(L)>40 Then PPOS(L)=PPOS(L)-40 : PM(L)=PM(L)+200
RD=0
If PROPOWN(PPOS(L))<>0 and PROPOWN(PPOS(L))<>L
RD=1
End If
Return
C2:
Rem get out of jail free
GOOJFC=L
Screen 2
Ink 5
Paint 180,(-50+(50*BVD(L)+17)),1
Ink 14
Screen 0
Return
C3:
Rem go back 3 spaces
If FCR=2
Wait 40
Else
Wait 4*DEL
End If
For J=PPOS(L)-1 To PPOS(L)-3 Step -1 : K=J
If K>21
Bob L,BX(K),BY(K),Hrev(PLPC(L))
Screen 2
Bob L+4,SX(K),SY(K),Hrev(DLPC(L))
Else
Bob L,BX(K),BY(K),PLPC(L)
Screen 2
Bob L+4,SX(K),SY(K),DLPC(L)
End If
If FP$="n"
Play %100,90,2
Play Off
End If
Screen 0
Wait DEL
Next J
PPOS(L)=PPOS(L)-3
MOV=1
Return
C4:
Rem pay each player $50
PM(L)=PM(L)-(50*NP)
For CJ=1 To NP
PM(CJ)=PM(CJ)+50
Next CJ
UDATEMONEY
Return
C5:
Rem go to jail
Gosub JAIL
MOV=1
Return
C6:
Rem go to Go
If FCR=2
Wait 60
Else
Wait 6*DEL
End If
ROL=41-PPOS(L)
Gosub MP
PPOS(L)=PPOS(L)+ROL : If PPOS(L)>40 Then PPOS(L)=PPOS(L)-40 : PM(L)=PM(L)+200
MOV=1
Return
C7:
Rem street repairs
HOT=0 : HOU=0
For SRJ=1 To 40
If PROPOWN(SRJ)=L
If HOUSE(SRJ)=5
Inc HOT
Else
HOU=HOU+HOUSE(SRJ)
End If
End If
Next SRJ
Screen 2
Pen 0 : Paper 5
Screen 0
LOKATE[23,18]
CHPRT["You own"+Str$(HOU)+" houses and"+Str$(HOT)+" hotels."]
LOKATE[23,19]
SRSUM=(HOU*25)+(HOT*100)
QQUEST[SRSUM]
CHPRT["You have to pay "+Pen$(2)+" "+C$+QQ$+Pen$(14)+"."]
DPEN[14]
Screen 2
Pen 14 : Paper 0
Screen 0
PM(L)=PM(L)-SRSUM
UDATEMONEY
If COMPPLY(L)=1
Wait 12*DEL
End If
Return
C8:
Rem advance to St. Charles Place
If FCR=2
Wait 60
Else
Wait 6*DEL
End If
If PPOS(L)<12 Then ROL=12-PPOS(L) : Else ROL=52-PPOS(L)
Gosub MP
PPOS(L)=PPOS(L)+ROL : If PPOS(L)>40 Then PPOS(L)=PPOS(L)-40 : PM(L)=PM(L)+200
MOV=1
Return
C9:
Rem take a ride on the Reading
If FCR=2
Wait 60
Else
Wait 6*DEL
End If
ROL=46-PPOS(L)
Gosub MP
PPOS(L)=PPOS(L)+ROL : If PPOS(L)>40 Then PPOS(L)=PPOS(L)-40 : PM(L)=PM(L)+200
MOV=1
Return
C10:
Rem advance to nearest utility
If FCR=2
Wait 100
Else
Wait 10*DEL
End If
If PPOS(L)=8 Then ROL=5
If PPOS(L)=23 Then ROL=6
If PPOS(L)=37 Then ROL=16
Gosub MP
PPOS(L)=PPOS(L)+ROL : If PPOS(L)>40 Then PPOS(L)=PPOS(L)-40 : PM(L)=PM(L)+200
MOV=3
UD=0
If PROPOWN(PPOS(L))<>0 and PROPOWN(PPOS(L))<>L
UD=1
End If
Return
C11:
Rem take walk on Boardwalk
If FCR=2
Wait 60
Else
Wait 6*DEL
End If
ROL=40-PPOS(L)
Gosub MP
PPOS(L)=PPOS(L)+ROL : If PPOS(L)>40 Then PPOS(L)=PPOS(L)-40 : PM(L)=PM(L)+200
MOV=1
Return
C12:
Rem advance to Illinois Ave.
If FCR=2
Wait 60
Else
Wait 6*DEL
End If
ROL=25-PPOS(L)
If PPOS(L)=37 Then ROL=28
Gosub MP
PPOS(L)=PPOS(L)+ROL : If PPOS(L)>40 Then PPOS(L)=PPOS(L)-40 : PM(L)=PM(L)+200
MOV=1
Return
PROJECT:
Menu Off
CLRINFO
On Choice(2) Gosub LOD,SAV,BLANK,ABOUT,HEP,BLANK,KIL,BLANK,KWIT
Clear Key
Menu On
On Menu On
Return
LOD:
Break Off
Amos Lock
Amos To Back
RT_FILEREQ["Please select a game to load"]
F$=Param$
Amos To Front
Amos Unlock
Wait Vbl
If F$=""
Goto DUNLOD
End If
Bob Off
Wait Vbl
Open In 1,F$
Input #1,JUNK$
If JUNK$<>VERSION$
Close 1
Goto DUNLOD
End If
Input #1,JUNK$ : D1=Asc(JUNK$)
Input #1,JUNK$ : D2=Asc(JUNK$)
Input #1,JUNK$ : NP=Asc(JUNK$)
Input #1,JUNK$ : L=Asc(JUNK$)
Input #1,JUNK$ : DUBBLE=Asc(JUNK$)
Input #1,JUNK$ : DEL=Asc(JUNK$)
RECODE
PA$=Param$
RECODE
LH$=Param$
RECODE
SF$=Param$
RECODE
PARKING$=Param$
RECODE
DL$=Param$
Input #1,JUNK$ : PARKING=Asc(JUNK$)
Input #1,JUNK$ : GOOJFC=Asc(JUNK$)
Input #1,JUNK$ : GOOJFCC=Asc(JUNK$)
Input #1,JUNK$ : HOUSESLEFT=Asc(JUNK$)
Input #1,JUNK$ : HOTELSLEFT=Asc(JUNK$)
Input #1,JUNK$ : C=Asc(JUNK$)
Input #1,JUNK$ : CC=Asc(JUNK$)
Input #1,JUNK$ : PMR=Asc(JUNK$)
RECODE
PM$=Param$
Input #1,JUNK$ : PMT=Asc(JUNK$)
Input #1,JUNK$ : SHUMAN=Asc(JUNK$)
Input #1,JUNK$ : COUNTRY=Asc(JUNK$)
Input #1,JUNK$ : QQ=Asc(JUNK$)
RECODE
C$=Param$
RECODE
QS$=Param$
Input #1,JUNK$ : H1=Asc(JUNK$)
RECODE
FP$=Param$
RECODE
BTB$=Param$
RECODE
CH$=Param$
RECODE
PROP$(41)=Param$
RECODE
CP$=Param$
For X=1 To NP
Input #1,JUNK$ : JAILOUT(X)=Asc(JUNK$)
Input #1,JUNK$ : COMPPLY(X)=Asc(JUNK$)
Input #1,JUNK$ : PLPC(X)=Asc(JUNK$)
Input #1,JUNK$ : PC(X)=Asc(JUNK$)
Input #1,JUNK$ : PPOS(X)=Asc(JUNK$)
RECODE
PL$(X)=Param$
RECODE
JUNK$=Param$
PM(X)=Val(JUNK$)
Input #1,JUNK$ : PP(X)=Asc(JUNK$)
Input #1,JUNK$ : DLPC(X)=Asc(JUNK$)
Input #1,BVD(X)
Next X
For X=1 To 40
RECODE
JUNK$=Param$
CURRENT(X)=Val(JUNK$)
Input #1,JUNK$ : HOUSE(X)=Asc(JUNK$)
Input #1,JUNK$ : PROPOWN(X)=Asc(JUNK$)
Input #1,JUNK$ : LOAN(X)=Asc(JUNK$)
Input #1,JUNK$ : LCT(X)=Asc(JUNK$)
Input #1,JUNK$ : LWHO(X)=Asc(JUNK$)
Next X
For X=1 To 16
Input #1,JUNK$ : CSPEC(X)=Asc(JUNK$)
RECODE
CHANCE1$(X)=Param$
RECODE
CHANCE2$(X)=Param$
RECODE
CHANCE3$(X)=Param$
RECODE
CHANCE4$(X)=Param$
Input #1,CS1(X)
Input #1,CX1(X)
Input #1,CY1(X)
Input #1,CX2(X)
Input #1,CY2(X)
Input #1,JUNK$ : CCSPEC(X)=Asc(JUNK$)
RECODE
CCHEST1$(X)=Param$
RECODE
CCHEST2$(X)=Param$
RECODE
CCHEST3$(X)=Param$
Input #1,CCS1(X)
Input #1,CCX1(X)
Input #1,CCY1(X)
Input #1,CCX2(X)
Input #1,CCY2(X)
Next X
CH1=1
On COUNTRY Gosub USA,BRIT,AUS,FR,ITA,GER,SWE,SW,NC
CH1=0
If DL$="n"
End If
For X=1 To NP
JUNK=PPOS(X)
If JUNK>21 and JUNK<41
Bob X,BX(JUNK),BY(JUNK),Hrev(PLPC(X))
Wait Vbl
Bob X,BX(JUNK),BY(JUNK),Hrev(PLPC(X))
Else
Bob X,BX(JUNK),BY(JUNK),PLPC(X)
Wait Vbl
Bob X,BX(JUNK),BY(JUNK),PLPC(X)
End If
Wait Vbl
Next X
For X=1 To 40
Gosub HOUSEBOB
Wait Vbl
If RENT(X,3)>0
Paste Bob HX,HY,((X-1)/5+45)
Wait Vbl
End If
If HOUSE(X)>0
Paste Bob HX,HY,SHAP
Wait Vbl
End If
Next X
Ink 14 : Bar 181,38 To 562,(42+32)
Ink 0 : Bar 181,38 To 562,(42+8*(NP))
UDATENAME
UDATEMONEY
UDATEPROP
Paste Bob 1,1,D1+19
Paste Bob 20,30,D2+19
Screen 2
Paste Bob 472,30,D1+97
Paste Bob 530,30,D2+103
Screen 0
Wait Vbl
Close 1
UDATEBOBS
Wait Vbl
UDATENAME
UDATESETS
HIGHLIGHTTURN
Gosub BLANK
Wait Vbl
UDATEMENUS
CLRINFO
DUNLOD:
JUNK$=""
Gosub BLANK
Break On
Return
SAV:
Break Off
Amos Lock
Amos To Back
RT_FILEREQ["Please select a game to save"]
F$=Param$
Amos To Front
Amos Unlock
Wait Vbl
If F$=""
Goto DUNSAV
End If
Open Out 1,F$
Print #1,VERSION$
Print #1,Chr$(D1)
Print #1,Chr$(D2)
Print #1,Chr$(NP)
Print #1,Chr$(L)
Print #1,Chr$(DUBBLE)
Print #1,Chr$(DEL)
ENCODE[PA$]
ENCODE[LH$]
ENCODE[SF$]
ENCODE[PARKING$]
ENCODE[DL$]
Print #1,Chr$(PARKING)
Print #1,Chr$(GOOJFC)
Print #1,Chr$(GOOJFCC)
Print #1,Chr$(HOUSESLEFT)
Print #1,Chr$(HOTELSLEFT)
Print #1,Chr$(C)
Print #1,Chr$(CC)
Print #1,Chr$(PMR)
ENCODE[PM$]
Print #1,Chr$(PMT)
Print #1,Chr$(SHUMAN)
Print #1,Chr$(COUNTRY)
Print #1,Chr$(QQ)
ENCODE[C$]
ENCODE[QS$]
Print #1,Chr$(H1)
ENCODE[FP$]
ENCODE[BTB$]
ENCODE[CH$]
ENCODE[PROP$(41)]
ENCODE[CP$]
For X=1 To NP
Print #1,Chr$(JAILOUT(X))
Print #1,Chr$(COMPPLY(X))
Print #1,Chr$(PLPC(X))
Print #1,Chr$(PC(X))
Print #1,Chr$(PPOS(X))
ENCODE[PL$(X)]
ENCODE[Str$(PM(X))]
Print #1,Chr$(PP(X))
Print #1,Chr$(DLPC(X))
Print #1,BVD(X)
Next X
For X=1 To 40
ENCODE[Str$(CURRENT(X))]
Print #1,Chr$(HOUSE(X))
Print #1,Chr$(PROPOWN(X))
Print #1,Chr$(LOAN(X))
Print #1,Chr$(LCT(X))
Print #1,Chr$(LWHO(X))
Next X
For X=1 To 16
Print #1,Chr$(CSPEC(X))
ENCODE[CHANCE1$(X)]
ENCODE[CHANCE2$(X)]
ENCODE[CHANCE3$(X)]
ENCODE[CHANCE4$(X)]
Print #1,CS1(X)
Print #1,CX1(X)
Print #1,CY1(X)
Print #1,CX2(X)
Print #1,CY2(X)
Print #1,Chr$(CCSPEC(X))
ENCODE[CCHEST1$(X)]
ENCODE[CCHEST2$(X)]
ENCODE[CCHEST3$(X)]
Print #1,CCS1(X)
Print #1,CCX1(X)
Print #1,CCY1(X)
Print #1,CCX2(X)
Print #1,CCY2(X)
Next X
UDATEMENUS
Close 1
DUNSAV:
Gosub BLANK
Break On
Return
BLANK:
CLRINFO
Gosub UPINFO
Return
ABOUT:
LOKATE[23,12]
CHPRT[" "]
CHPRT[Pen$(14)+Paper$(4)]
LOKATE[23,12]
CHPRT[" MONOPOLY "]
Rem change to " MONOPOLY Deluxe " ??
DPAPER[0] : DPEN[14]
LOKATE[23,13]
CHPRT["Version 1.8 Beta2"]
LOKATE[23,15] : CHPRT[Paper$(0)+"Copyright � Parker Bros."]
LOKATE[23,16] : CHPRT["1935,1936,1947,1951,1952,1954,1961,1973"]
LOKATE[23,17] : CHPRT["All rights reserved."]
LOKATE[23,19] : CHPRT["This Amiga version Copyright � 1994-2000"]
LOKATE[23,20] : CHPRT["Al Metz. All rights reserved"]
Return
HEP:
If FCR=0
FCR=2
For J=1 To NP
PL$(J)=DD$(BVD(J))
PC(J)=14
Next J
DL$="y"
Else
FCR=0
For J=1 To NP
PL$(J)=DC$(BVD(J))
PC(J)=DPC(BVD(J))
Next J
DL$="n"
End If
UDATEMENUS
Screen To Front FCR
UDATENAME
Gosub ZON
Gosub BLANK
HIGHLIGHTTURN
Return
KIL:
LOKATE[23,12] : DPEN[11] : CHPRT["Kill A Player"]
DPEN[14]
LOKATE[23,14]
CHPRT[Pen$(PC(L))+PL$(L)+Pen$(14)]
LOKATE[23,15]
CHPRT["Are you sure you want to quit? (y/N) "]
KILKEY:
KEYGET
Bell
LOKATE[23,16]
CHPRT[A$]
If A$=Chr$(13)
A$="y"
End If
A$=Lower$(A$)
If(A$<>"n") and(A$<>"y")
Goto KILKEY
End If
If A$="n"
CLRINFO
Gosub UPINFO
Show On
Return
End If
KAPUT:
CLRINFO
JUNK$=PL$(L)
PL$(L)=""
TEMPL1=L
For X=1 To NP
TEMPL2$(X)=PL$(X)
TEMPL3(X)=PPOS(X)
Next X
X=0
If PM(L)<0
LOKATE[23,13]
CHPRT[Pen$(PC(L))+JUNK$+Pen$(14)+" is bankrupt. "]
End If
PM(L)=0
UDATEMONEY
LOKATE[23,15]
YY=0
NM=0
If QS$="y"
QSB=QSB+1
End If
If NP>2
For X=1 To 40
Gosub HOUSEBOB
If PROPOWN(X)=L
PROPOWN(X)=0
UFILL[X,L]
If HOUSE(X)>0
If HOUSE(X)=H2
Inc HOTELSLEFT
Else
HOUSESLEFT=HOUSESLEFT+HOUSE(X)
End If
HOUSE(X)=0
Paste Bob HX,HY,((X-1)/5+45)
Screen 2
Ink PCOLOR(X)
Bar DSX,DSY To DTX,DTY
Ink 14
Screen 0
Wait Vbl
End If
If CURRENT(X)<>0
If RENT(X,0)<999
CURRENT(X)=RENT(X,0)
Else
If X<>6 and X<>13 and X<>16 and X<>26 and X<>29 and X<>36
CURRENT(X)=0
End If
End If
End If
Inc NM : M(NM)=X
If BTB$="y"
If CURRENT(X)=0
CURRENT(X)=RENT(X,0)
End If
End If
End If
Next X
UDATESETS
If QSB=2 or BTB$="y"
NM=0
End If
If NM>0
M=L
CHPRT[Pen$(PC(L))+JUNK$+Pen$(14)+"'s properties will now be "]
LOKATE[23,16] : CHPRT["auctioned off to the highest bidder."]
Wait 10*DEL
For X=1 To NM
L=M+1
If L>NP
L=1
End If
PPOS(L)=M(X)
CLRINFO
PRTINFO[PPOS(L)]
UDATEMONEY
COMEONALONG
UDATEMONEY
UDATESETS
Next X
L=TEMPL1
For X=1 To NP
PL$(X)=TEMPL2$(X)
PPOS(X)=TEMPL3(X)
Next X : X=0
End If
UDATESETS
Else
PM(L)=0
For X=1 To 40
If PROPOWN(X)=L
PROPOWN(X)=0
UFILL[X,L]
End If
Next X
Goto KAPUT2
End If
DPEN[14]
CLRINFO
LOKATE[23,16]
CHPRT["Now removing "+Pen$(PC(L))+JUNK$+Pen$(14)+" from the game."]
KAPUT2:
If GOOJFC=L
GOOJFC=0
Screen 2
Ink 11
Paint 180,(-50+(50*BVD(L)+17)),1
Ink 14
Screen 0
End If
If GOOJFCC=L
GOOJFCC=0
Screen 2
Ink 11
Paint 180,(-50+(50*BVD(L)+23)),1
Ink 14
Screen 0
End If
Dec NP
For J=1 To NP
If PL$(J)=""
Swap PL$(J),PL$(J+1)
Swap PM(J),PM(J+1)
Swap PC(J),PC(J+1)
Swap PPOS(J),PPOS(J+1)
Swap PLPC(J),PLPC(J+1)
Swap DLPC(J),DLPC(J+1)
Swap COMPPLY(J),COMPPLY(J+1)
Swap JAILOUT(J),JAILOUT(J+1)
Swap BVD(J),BVD(J+1)
For K=1 To 40
If PROPOWN(K)=J
PROPOWN(K)=999
End If
If PROPOWN(K)=J+1
PROPOWN(K)=J
End If
If PROPOWN(K)=999
PROPOWN(K)=J+1
End If
Next K
K=0
End If
K=PPOS(J)
If K>21 and K<41
Bob J,BX(K),BY(K),Hrev(PLPC(J))
Screen 2
Bob J+4,SX(K),SY(K),Hrev(DLPC(J))
Screen 0
Wait Vbl
Else
Bob J,BX(K),BY(K),PLPC(J)
Screen 2
Bob J+4,SX(K),SY(K),DLPC(J)
Screen 0
Wait Vbl
End If
Next J
Wait 6*DEL
Bob Off(NP+1)
Bob Off(NP+5)
Wait Vbl
UDATEBOBS
Wait Vbl
Gosub UNHIGHLIGHT
Ink 0 : Bar 181,38 To 562,(42+8*(NP+1))
Wait Vbl
UDATENAME
UDATEPROP
UDATEMONEY
UDATEMENUS
For J=63 To 30 Step -1
Bell J
Wait 2
Next J
KILT=1
UDATESETS
CLRINFO
L=TEMPL1
If COMPPLY(L)=0
Show On
End If
CQUIT:
JUNK=0
For J=1 To NP
If COMPPLY(J)=1
Inc JUNK
End If
Next J
If JUNK$=Chr$(27)
CLRINFO
Show On
DPEN[14]
If JUNK=NP and NP>1
LOKATE[23,16]
CHPRT["Attention!"]
LOKATE[23,18]
CHPRT["There are no human players left."]
End If
LOKATE[23,19]
CHPRT["Do you want to end the game now? (Y/n)"]
CQ2:
Repeat
A$=Inkey$
Until A$=""
KEYGET
If A$=Chr$(27)
Goto CQ2
End If
If A$=Chr$(13)
A$="y"
End If
A$=Lower$(A$)
LOKATE[23,20]
CHPRT[A$]
If A$="y"
Pop
Goto GAMEEND
End If
SHUMAN=0
Hide On
Gosub UPINFO
Return
End If
If JUNK=NP and NP>1
If SHUMAN>0
CLRINFO
Show On
DPEN[14]
LOKATE[23,16]
CHPRT["Attention!"]
LOKATE[23,18]
CHPRT["There are no human players left."]
LOKATE[23,19]
CHPRT["Do you want to end the game now? (Y/n)"]
KEYGET
If A$=Chr$(13)
A$="y"
End If
A$=Lower$(A$)
LOKATE[23,20]
CHPRT[A$]
If A$="y"
Pop
Goto GAMEEND
End If
SHUMAN=0
Hide On
Gosub UPINFO
End If
End If
JUNK=0
If QSB=2 or NP=1
Pop
Goto GAMEEND
End If
Return
KWIT:
LOKATE[23,12] : DPEN[10] : CHPRT["Quit"]
DPEN[14]
LOKATE[23,14]
CHPRT["Are you sure you want to quit? (y/N) "]
Clear Key
KWITAKEY:
KEYGET
If A$=Chr$(13)
A$="n"
End If
LOKATE[23,16]
CHPRT[A$]
A$=Lower$(A$)
If A$="y"
Goto GAMEEND
End If
CLRINFO
Gosub UPINFO
Show On
Return
PROPERTY:
Menu Off
CLRINFO
JUNKOK=43 : JUNKCAN=44
If DL$="y"
JUNKOK=41 : JUNKCAN=42
End If
On Choice(2) Gosub BUYHOUSE,SELLHOUSE,BLANK,MORTGAGE,LIFTMORT,BLANK,PRINFO,BLANK,LOAN
Menu On
On Menu On : DPEN[14]
CLRINFO
Gosub UPINFO
LOKATE[23,20] : CHPRT["Hit any key to roll dice."]
Clear Key
Return
BUYHOUSE:
If PM(L)<50
DPEN[14]
LOKATE[23,15]
CHPRT["You don't have enough money"]
LOKATE[23,16]
CHPRT["to buy ANY houses!"]
Wait 6*DEL
Return
End If
For J=1 To 40 : HBACKUP(J)=HOUSE(J) : CURBACK(J)=CURRENT(J) : Next J
MONEYBACK=PM(L) : HOUSEBACK=HOUSESLEFT : HOTELBACK=HOTELSLEFT
LOKATE[23,12] : DPEN[8] : CHPRT["Buy House"]
DPEN[14]
LOKATE[23,14] : CHPRT["Please click on a property"]
LOKATE[23,15] : CHPRT["that you want to buy a house for."]
LOKATE[23,17] : CHPRT["Click 'OK' to quit."]
LOKATE[23,18] : CHPRT["Click 'CANCEL' if you change your mind."]
If LH$="y"
LOKATE[23,20]
CHPRT["Houses left ="+Str$(HOUSESLEFT)+" Hotels left ="+Str$(HOTELSLEFT)]
End If
HOUSELOOP:
If COMPPLY(L)=0
Gosub CLICK
Else
Wait 4*DEL
If PP(L)=3
If(HOUSECOST(X1)+JUNK)>PM(L)
X=JUNKOK
Goto HL
End If
Else
If(HOUSECOST(X1)+200)>PM(L)
X=JUNKOK
Goto HL
End If
End If
If PP(L)=3 and LH$="y"
If HOUSE(X1)=H1 and HOUSE(X2)=H1 and HOUSE(X3)=H1
X=JUNKOK
Goto HL
End If
Else
If HOUSE(X1)=H2 and HOUSE(X2)=H2 and HOUSE(X3)=H2
X=JUNKOK
Goto HL
End If
End If
If LH$="y"
If HOTELSLEFT=0 and HOUSE(X1)>H1-1 and HOUSE(X2)>H1-1 and HOUSE(X3)>H1-1
X=JUNKOK
End If
If HOUSESLEFT=0 and(HOUSE(X1)<H1 or HOUSE(X2)<H1 or HOUSE(X3)<H1)
X=JUNKOK
End If
End If
X=X1
If HOUSE(X1)>HOUSE(X2)
X=X2
End If
If HOUSE(X2)>HOUSE(X3)
X=X3
End If
CLRINFO
End If
HL:
If X=JUNKCAN
Gosub HBACK
Return
End If
If X=JUNKOK
CLRINFO
UDATEMONEY
UDATEBOBS
Bell 80
If COMPPLY(L)=1
Wait 6*DEL
End If
Return
End If
LOKATE[23,12]
DPEN[PCOLOR(X)]
CHPRT[PROP$(X)]
LOKATE[23,14]
DPEN[14]
If RENT(X,2)>0
QQUEST[HOUSECOST(X)]
CHPRT["Houses cost "+Pen$(2)+" "+C$+QQ$]
DPEN[14]
End If
If RENT(X,0)>999
LOKATE[23,16]
CHPRT["You can't put houses on that property."]
Goto HOUSELOOP
End If
If PROPOWN(X)<>L
DPEN[14]
LOKATE[23,16]
CHPRT["You don't own that."]
Goto HOUSELOOP
End If
If HOUSECOST(X)>PM(L)
LOKATE[23,16]
CHPRT["You don't have enough money."]
Goto HOUSELOOP
End If
If CURRENT(X)=RENT(X,0)
LOKATE[23,16]
CHPRT["You don't have all the properties"]
LOKATE[23,17]
CHPRT["of that color group."]
Goto HOUSELOOP
End If
If CURRENT(X)=0 or CURRENT(SET1(X))=0 or CURRENT(SET2(X))=0
LOKATE[23,16]
CHPRT["You can't build houses or hotels when"]
LOKATE[23,17]
CHPRT["one or more properties of that"]
LOKATE[23,18]
CHPRT["color group have been mortgaged."]
Goto HOUSELOOP
End If
If LH$="y"
If HOUSE(X)<H1 and HOUSESLEFT=0
LOKATE[23,16]
CHPRT["Sorry, there are no houses left."]
Goto HOUSELOOP
End If
If HOUSE(X)=H1 and HOTELSLEFT=0
LOKATE[23,16]
CHPRT["Sorry, there are no hotels left."]
Goto HOUSELOOP
End If
End If
If HOUSE(X)>H1
LOKATE[23,16]
CHPRT["You already have a hotel there."]
Goto HOUSELOOP
End If
If HOUSE(SET1(X))<HOUSE(X) or HOUSE(SET2(X))<HOUSE(X)
LOKATE[23,16]
CHPRT["You must distribute the houses evenly."]
Goto HOUSELOOP
End If
Rem buy a house
Inc HOUSE(X)
If QS$="y" and HOUSE(X)=4
HOUSE(X)=5
End If
CURRENT(X)=RENT(X,HOUSE(X))
PM(L)=PM(L)-HOUSECOST(X)
Gosub HOUSEBOB
If LH$="y"
If HOUSE(X)=H2
Dec HOTELSLEFT
HOUSESLEFT=HOUSESLEFT+H1
Else
Dec HOUSESLEFT
End If
LOKATE[23,20]
CHPRT["Houses left ="+Str$(HOUSESLEFT)+" Hotels left ="+Str$(HOTELSLEFT)]
End If
Paste Bob HX,HY,((X-1)/5+45)
Wait Vbl
Paste Bob HX,HY,SHAP
Wait Vbl
Screen 2
Ink PCOLOR(X)
Bar DSX,DSY To DTX,DTY
Paste Bob DSX,DSY,DSHAP
Ink 14
Screen 0
Wait Vbl
UDATEMONEY
Bell
Wait Vbl
If COMPPLY(L)=1
Wait 6*DEL
End If
Goto HOUSELOOP
Return
SELLHOUSE:
JUNK=0
LOKATE[23,12] : DPEN[2] : CHPRT["Sell House"]
DPEN[14]
For J=1 To 40 : HBACKUP(J)=HOUSE(J) : CURBACK(J)=CURRENT(J) : Next J
MONEYBACK=PM(L) : HOUSEBACK=HOUSESLEFT : HOTELBACK=HOTELSLEFT
LOKATE[23,14] : CHPRT["Please click on a property"]
LOKATE[23,15] : CHPRT["that you want to sell a house from."]
LOKATE[23,17] : CHPRT["Click 'OK' to quit."]
LOKATE[23,18] : CHPRT["Click 'CANCEL' if you change your mind."]
If LH$="y"
LOKATE[23,20]
CHPRT["Houses left ="+Str$(HOUSESLEFT)+" Hotels left ="+Str$(HOTELSLEFT)]
End If
HOUSELOOP2:
If COMPPLY(L)=0
Gosub CLICK
Else
Wait 4*DEL
If PM(L)=>0
X=JUNKOK
Else
Inc JUNK
If JUNK>NM
X=JUNKOK
Else
X=M(JUNK)
End If
End If
CLRINFO
End If
HL2:
If X=JUNKCAN
Gosub HBACK
Return
End If
If X=JUNKOK
CLRINFO
UDATEMONEY
For X=1 To 40
Gosub HOUSEBOB
If RENT(X,2)<>RENT(X,3)
If HOUSE(X)=0
Paste Bob HX,HY,((X-1)/5+45)
Wait Vbl
End If
End If
Next X
UDATEBOBS
Bell 80
If COMPPLY(L)=1
Wait 6*DEL
End If
Return
End If
CLRINFO
LOKATE[23,12]
DPEN[PCOLOR(X)]
CHPRT[PROP$(X)]
LOKATE[23,14]
DPEN[14]
If RENT(X,2)>0
QQUEST[HOUSECOST(X)]
CHPRT["Houses cost "+Pen$(2)+" "+C$+QQ$]
DPEN[14]
End If
DPEN[14]
If PROPOWN(X)<>L
LOKATE[23,16]
CHPRT["You don't own that."]
Goto HOUSELOOP2
End If
If HOUSE(X)=0
LOKATE[23,16]
CHPRT["You don't have any houses there."]
Goto HOUSELOOP2
End If
If HOUSE(SET1(X))>HOUSE(X) or HOUSE(SET2(X))>HOUSE(X)
LOKATE[23,16]
CHPRT["You must remove the houses evenly."]
Goto HOUSELOOP2
End If
Rem sell a house
Dec HOUSE(X)
If QS$="y" and HOUSE(X)=4
HOUSE(X)=3
End If
CURRENT(X)=RENT(X,HOUSE(X))
If HOUSE(X)=0 and PROPOWN(SET1(X))=L and PROPOWN(SET2(X))=L
CURRENT(X)=RENT(X,0)*2
End If
PM(L)=PM(L)+(HOUSECOST(X)/2)
Gosub HOUSEBOB
If LH$="y"
If HOUSE(X)=H1
Inc HOTELSLEFT
HOUSESLEFT=HOUSESLEFT-H1
Else
Inc HOUSESLEFT
End If
LOKATE[23,20]
CHPRT["Houses left ="+Str$(HOUSESLEFT)+" Hotels left ="+Str$(HOTELSLEFT)]
End If
Wait Vbl
Paste Bob HX,HY,((X-1)/5+45)
Wait Vbl
If HOUSE(X)<>0
Paste Bob HX,HY,SHAP
Wait Vbl
End If
Wait Vbl
Screen 2
Ink PCOLOR(X)
Bar DSX,DSY To DTX,DTY
If HOUSE(X)<>0
Paste Bob DSX,DSY,DSHAP
End If
Ink 14
Screen 0
UDATEMONEY
Bell
UDATEBOBS
If COMPPLY(L)=1
Wait 6*DEL
End If
Goto HOUSELOOP2
Return
MORTGAGE:
JUNK=0 : JUNK2=0
CLRINFO
LOKATE[23,12] : DPEN[4] : CHPRT["Mortgage"]
DPEN[14]
For J=1 To 40 : CURBACK(J)=CURRENT(J) : Next J
MONEYBACK=PM(L)
LOKATE[23,14] : CHPRT["Please click on a property"]
LOKATE[23,15] : CHPRT["that you want to mortgage."]
LOKATE[23,17] : CHPRT["Click 'OK' to quit."]
LOKATE[23,18] : CHPRT["Click 'CANCEL' if you change your mind."]
MORTLOOP:
If COMPPLY(L)=0
Gosub CLICK
Else
Wait 4*DEL
Inc JUNK
If JUNK>NM
X=JUNKOK
Goto ML
End If
If PM(L)>0
X=JUNKOK
Goto ML
End If
X=M(JUNK)
End If
Wait Vbl
CLRINFO
Wait Vbl
ML:
If X=JUNKCAN
CLRINFO
For J=1 To 40
CURRENT(J)=CURBACK(J)
Next J
PM(L)=MONEYBACK
UDATEMONEY
UDATEBOBS
Bell 1
Return
End If
If X=JUNKOK
CLRINFO
UDATEMONEY
Bell 80
If COMPPLY(L)=1
Wait 6*DEL
End If
Return
End If
LOKATE[23,12]
DPEN[PCOLOR(X)]
CHPRT[PROP$(X)]
LOKATE[23,14]
DPEN[14]
If PRICE(X)>0
JUNK2=PRICE(X)/2
QQUEST[JUNK2]
JUNK2=0
CHPRT["Mortgage value"+Pen$(2)+" "+C$+QQ$]
DPEN[14]
End If
DPEN[14]
If PROPOWN(X)<>L
LOKATE[23,16]
CHPRT["You don't own that."]
Goto MORTLOOP
End If
If HOUSE(X)>0 or HOUSE(SET1(X))>0 or HOUSE(SET2(X))>0
LOKATE[23,16]
CHPRT["You can't mortgage a property"]
LOKATE[23,17]
CHPRT["with houses on it's color group."]
Goto MORTLOOP
End If
If LOAN(X)>0
LOKATE[23,16]
CHPRT["You can't mortgage a property"]
LOKATE[23,17]
CHPRT["once a loan has been made on it."]
Goto MORTLOOP
End If
If CURRENT(X)=0
LOKATE[23,16]
CHPRT["That property is already mortgaged."]
Goto MORTLOOP
End If
CURRENT(X)=0
PM(L)=PM(L)+(PRICE(X)/2)
LOKATE[23,19]
JUNK2=PRICE(X)/2
QQUEST[JUNK2]
JUNK2=0
CHPRT["You get "+Pen$(2)+C$+QQ$]
DPEN[14]
LOKATE[23,20]
CHPRT["from the mortgage."]
UDATEMONEY
Bell
If COMPPLY(L)=1
Wait 6*DEL
End If
Goto MORTLOOP
JUNK=0 : JUNK2=0
Return
LIFTMORT:
CLRINFO
JUNK=0
LOKATE[23,12] : DPEN[3] : CHPRT["Lift Mortgage"]
DPEN[14]
For J=1 To 40 : CURBACK(J)=CURRENT(J) : Next J
MONEYBACK=PM(L)
LOKATE[23,13] : CHPRT["Please click on a property that you"]
LOKATE[23,14] : CHPRT["want to lift the mortgage of."]
LOKATE[23,16] : CHPRT["Click 'OK' to quit."]
LOKATE[23,17] : CHPRT["Click 'CANCEL' if you change your mind."]
LOKATE[23,19] : CHPRT["NOTE: Lifting a mortgage costs the value"]
LOKATE[23,20] : CHPRT["of the mortgage PLUS 10%."]
LIFTLOOP:
If COMPPLY(L)=0
Gosub CLICK
Else
Wait 4*DEL
Inc JUNK
If JUNK>NM
X=JUNKOK
Goto LL
End If
TENPER=PRICE(M(JUNK))
TENPER=(TENPER/2)
TENPER=TENPER+(PRICE(M(JUNK))/10)
If PM(L)<TENPER+100
X=JUNKOK
Goto LL
End If
X=M(JUNK)
End If
Wait Vbl
CLRINFO
Wait Vbl
LL:
If X=JUNKCAN
For J=1 To 40
CURRENT(J)=CURBACK(J)
Next J
PM(L)=MONEYBACK
UDATEMONEY
UDATEBOBS
Bell 1
Return
End If
If X=JUNKOK
UDATEMONEY
Bell 80
If COMPPLY(L)=1
Wait 6*DEL
End If
Return
End If
LOKATE[23,12]
DPEN[PCOLOR(X)]
CHPRT[PROP$(X)]
LOKATE[23,14]
DPEN[14]
If CURRENT(X)>0
LOKATE[23,16]
CHPRT["That property isn't mortgaged."]
Goto LIFTLOOP
End If
LIFT=(PRICE(X)/2) : LIFT=LIFT+(PRICE(X)/10)
If PRICE(X)>0
QQUEST[LIFT]
CHPRT["Cost to remove mortgage"+Pen$(2)+" "+C$+QQ$]
DPEN[14]
End If
If PM(L)<LIFT
LOKATE[23,16]
CHPRT["You don't have enough money."]
Goto LIFTLOOP
End If
If PROPOWN(X)<>L
DPEN[14]
LOKATE[23,16]
CHPRT["You don't own that."]
Goto LIFTLOOP
End If
CURRENT(X)=RENT(X,0)
UDATESETS
PM(L)=PM(L)-LIFT
LOKATE[23,19]
CHPRT["You pay "+Pen$(2)+C$+QQ$]
DPEN[14]
LOKATE[23,20]
CHPRT["to lift the mortgage."]
UDATEMONEY
Bell
If COMPPLY(L)=1
Wait 6*DEL
End If
Goto LIFTLOOP
Return
PRINFO:
LOKATE[23,12] : DPEN[4] : CHPRT["Property Deed"]
DPEN[14]
LOKATE[23,14]
CHPRT["Please click on the property"]
LOKATE[23,15]
CHPRT["you want information on."]
LOKATE[23,17]
CHPRT["Click on 'OK' or 'CANCEL' to exit."]
Gosub INFO
Return
LOAN:
JUNK=0
CLRINFO
For J=1 To 40
CURBACK(J)=LOAN(J)
Next J
MONEYBACK=PM(L)
LOKATE[23,13] : CHPRT["Please click on a property set that "]
LOKATE[23,14] : CHPRT["you want a loan on."]
LOKATE[23,16] : CHPRT["Click 'OK' when done."]
LOKATE[23,17] : CHPRT["Click 'CANCEL' if you change your mind."]
LOANLOOP:
If COMPPLY(L)=0
Gosub CLICK
Else
Wait 4*DEL
Inc JUNK
If JUNK>NM
X=JUNKOK : JUNK=0
Goto LL2
End If
If PM(L)>0
X=JUNKOK : JUNK=0
Goto LL2
End If
X=M(JUNK)
End If
LL2:
CLRINFO
Wait Vbl
If X=JUNKCAN
For J=1 To 40
LOAN(J)=CURBACK(J)
Next J
PM(L)=MONEYBACK
UDATEMONEY
UDATEBOBS
Bell 1
Return
End If
If X=JUNKOK
UDATEMONEY
UDATEBOBS
Bell 80
If COMPPLY(L)=1
Wait 6*DEL
End If
Return
End If
If PROPOWN(X)<>L
LOKATE[23,13] : CHPRT["You don't own that property."]
Goto LOANLOOP
End If
If RENT(X,0)=1002
RR=1*-(PROPOWN(6)=L)+1*-(PROPOWN(16)=L)+1*-(PROPOWN(26)=L)+1*-(PROPOWN(36)=L)
If RR<4
LOKATE[23,13]
If COUNTRY<>2 and COUNTRY<>3 and COUNTRY<>8 and COUNTRY<>9
CHPRT["You don't own all the Railroads."]
Else
If COUNTRY=2 or COUNTRY=3
CHPRT["You don't own all the Railways."]
End If
If COUNTRY=8
CHPRT["You don't own all the Fighters."]
End If
If COUNTRY=9
CHPRT["You don't own all the Speedways."]
End If
End If
Goto LOANLOOP
End If
Else
If PROPOWN(SET1(X))<>L
LOKATE[23,13] : CHPRT["You don't own all the properties"]
LOKATE[23,14] : CHPRT["of that color group."]
Goto LOANLOOP
End If
If PROPOWN(SET2(X))<>L
LOKATE[23,13] : CHPRT["You don't own all the properties"]
LOKATE[23,14] : CHPRT["of that color group."]
Goto LOANLOOP
End If
End If
If CURRENT(X)=0 or CURRENT(SET1(X))=0 or CURRENT(SET2(X))=0
LOKATE[23,13] : CHPRT["You cannot take a loan out"]
LOKATE[23,14] : CHPRT["when one of the properties"]
LOKATE[23,15] : CHPRT["is mortgaged."]
Goto LOANLOOP
End If
If LOAN(X)<>0
LOKATE[23,13] : CHPRT["There has already been a loan"]
LOKATE[23,14] : CHPRT["made on those properties."]
Goto LOANLOOP
End If
If RENT(X,0)=1002
LOAN(6)=L : LOAN(16)=L : LOAN(26)=L : LOAN(36)=L
QQUEST[800]
LOKATE[23,13] : CHPRT["You get "+Pen$(2)+C$+QQ$]
DPEN[14]
LOKATE[23,14] : CHPRT["from your loan."]
LOKATE[23,16] : CHPRT["You must pay "+Pen$(2)+C$+QQ$]
DPEN[14]
LOKATE[23,17] : CHPRT["when the loan is called."]
PM(L)=PM(L)+800
Else
LOAN(X)=L : LOAN(SET1(X))=L : LOAN(SET2(X))=L
JUNK2=(LCST(X)/10)+LCST(X)
QQUEST[LCST(X)]
LOKATE[23,13] : CHPRT["You get "+Pen$(2)+C$+QQ$]
DPEN[14]
LOKATE[23,14] : CHPRT["from your loan."]
QQUEST[JUNK2]
LOKATE[23,16] : CHPRT["You must pay "+Pen$(2)+C$+QQ$]
DPEN[14]
LOKATE[23,17] : CHPRT["when the loan is called."]
PM(L)=PM(L)+LCST(X)
End If
Wait 4*DEL
LCT(X)=-(Rnd(5)+7)
LWHO(X)=L
Wait Vbl
Bell
Wait Vbl
UDATEMONEY
UDATEBOBS
Wait Vbl
If COMPPLY(L)=1
Wait 6*DEL
End If
Goto LOANLOOP
JUNK=0
Return
BUY:
Menu Off
SEC=Choice(2)
CLRINFO
DPEN[14]
LOKATE[23,13] : CHPRT["Please click on a property that you"]
LOKATE[23,14] : CHPRT["want to buy."]
LOKATE[23,16] : CHPRT["Click 'OK' or 'CANCEL'"]
LOKATE[23,17] : CHPRT["if you change your mind."]
BUYTOLOOP:
Gosub CLICK
If X=JUNKCAN or X=JUNKOK
Bell 1
Goto BUYEND
End If
LOKATE[23,12]
CLRINFO
PRTINFO[X]
LOKATE[23,15]
DPEN[14]
SELL1=X
If PROPOWN(SELL1)<>SEC
LOKATE[23,18]
CHPRT["Sorry, "+Pen$(PC(SEC))+PL$(SEC)+Pen$(14)+" doesn't own that."]
DPEN[14]
Goto BUYTOLOOP
End If
If HOUSE(SELL1)<>0
LOKATE[23,15]
CHPRT["You can't buy developed properties."]
DPEN[14]
Goto BUYTOLOOP
End If
DPEN[14]
BUY2:
LOKATE[23,16]
CHPRT["What are you willing to pay? "]
Clear Key
BD$="" : B$="" : A$=""
BUYKEY:
NUMGET
B$=A$
If B$<>Chr$(13)
If B$=Chr$(8)
BD$=""
CLRINFO
Goto BUY2
End If
LOKATE[23,17]
BD$=BD$+B$
CHPRT[BD$]
Goto BUYKEY
End If
BUYPRICE=Val(BD$)
If((BUYPRICE/QQ)*QQ)<>BUYPRICE
CLRINFO
LOKATE[23,13]
CHPRT["You must use increments of "+Str$(QQ)]
Wait 10*DEL
CLRINFO
Goto BUY2
End If
BUYPRICE=BUYPRICE/QQ
If BUYPRICE<0
Boom
CLRINFO
Goto BUYEND
End If
If PM(L)<BUYPRICE
CLRINFO
LOKATE[23,13]
CHPRT["You don't have that much money!"]
Wait 10*DEL
CLRINFO
Goto BUY2
End If
BUY3:
LOKATE[23,18]
CHPRT[Pen$(PC(SEC))+PL$(SEC)+Pen$(14)+", do you agree? (Y/n) "]
Clear Key
If COMPPLY(SEC)=1
Gosub COMPBUY
End If
KEYGET
LOKATE[23,19]
CHPRT[A$]
If A$=Chr$(13)
A$="y"
End If
A$=Lower$(A$)
If A$<>"n" and A$<>"y"
Goto BUY3
End If
If A$="n"
Boom
Goto BUYEND
End If
PROPOWN(SELL1)=L
UFILL[SELL1,SEC]
DFILL[SELL1,L]
PM(L)=PM(L)-BUYPRICE
PM(SEC)=PM(SEC)+BUYPRICE
UDATESETS
Bell 80
UDATEMONEY
If CURRENT(SELL1)=0
SEC=L
SOLDMORT
End If
BUYEND:
If COMPPLY(SEC)=1
Wait 6*DEL
End If
UDATEMONEY
Wait 4*DEL
CLRINFO
Gosub UPINFO
UDATESETS
Clear Key
If COMPPLY(L)=0
Show On
End If
Menu On
On Menu On
Return
SELL:
Menu Off
CLRINFO
SEC=Choice(2)
If SEC=NP+1
Gosub BLANK
Menu On
On Menu On
Return
End If
If SEC>NP
If SEC=NP+3
If GOOJFCC<>L
LOKATE[23,14]
CHPRT["Sorry, you don't own the"]
LOKATE[23,15]
DPEN[9]
CHPRT["GET OUT OF JAIL FREE - C.Chest"+Pen$(14)+" card."]
DPEN[14]
Else
If SF$="y"
LOKATE[23,14]
CHPRT["You sell the "]
LOKATE[23,15]
DPEN[9]
CHPRT["GET OUT OF JAIL FREE - C.Chest"+Pen$(14)+" card."]
DPEN[14]
LOKATE[23,16]
QQUEST[25]
CHPRT["for "+Pen$(2)+C$+QQ$+"."]
GOOJFCC=0
Screen 2
Ink 11
Paint 180,(-50+(50*BVD(L)+23)),1
Ink 14
Screen 0
PM(L)=PM(L)+25
DPEN[14]
UDATEMONEY
Else
CCSELL:
LOKATE[23,13]
DPEN[14]
CHPRT["Which player wants to buy the"]
DPEN[9]
LOKATE[23,14]
CHPRT["GET OUT OF JAIL FREE - C.Chest"+Pen$(14)+" card?"]
LOKATE[23,15]
JUNK$="("
For SELFJ=1 To NP-1
JUNK$=JUNK$+Str$(SELFJ)+","
Next SELFJ
JUNK$=JUNK$+" or"+Str$(NP)+") ?"
CHPRT[JUNK$]
Clear Key
KEYGET
LOKATE[23,16]
CHPRT[A$]
SELLCC=Val(A$)
If SELLCC<1 or SELLCC>NP
Goto CCSELL
End If
CCSELL2:
LOKATE[23,17]
CHPRT["What is the agreed selling price?"]
Clear Key
BD$=""
CCSELLKEY:
NUMGET
B$=A$
If B$<>Chr$(13)
If B$=Chr$(8)
BD$=""
CLRINFO
Goto CCSELL2
End If
BD$=BD$+B$
LOKATE[23,18]
CHPRT[BD$]
Goto CCSELLKEY
End If
SELLCC2=Val(BD$)
If((SELLCC2/QQ)*QQ)<>SELLCC2
CLRINFO
LOKATE[23,13]
CHPRT["You must use increments of "+Str$(QQ)]
Wait 10*DEL
CLRINFO
Goto CCSELLKEY
End If
SELLCC2=SELLCC2/QQ
If SELLCC2<0
Boom
CLRINFO
Goto SELLEND
End If
If PM(SELLCC)<SELLCC2
CLRINFO
LOKATE[23,13]
CHPRT[Pen$(PC(SELLCC))+PL$(SELLCC)+Pen$(14)+" doesn't have that much money! "]
Wait 10*DEL
CLRINFO
Goto SELLEND
End If
CCSELL3:
LOKATE[23,18]
CHPRT[Pen$(PC(SELLCC))+PL$(SELLCC)+Pen$(14)+", do you agree? (Y/n) "]
Clear Key
If COMPPLY(SELLCC)=1
If PM(SELLCC)>200 and SELLCC2<50
Clear Key
Put Key "y"
Else
Clear Key
Put Key "n"
End If
End If
KEYGET
LOKATE[23,19]
CHPRT[A$]
If COMPPLY(SELLCC)=1
Wait 6*DEL
End If
If A$=Chr$(13)
A$="y"
End If
A$=Lower$(A$)
If A$<>"n" and A$<>"y"
Goto CCSELL3
End If
If A$="n"
Boom
Wait 10*DEL
CLRINFO
Goto SELLEND
End If
GOOJFCC=SELLCC
Screen 2
Ink 9
Paint 180,(-50+(50*BVD(SELLCC)+23)),1
Ink 11
Paint 180,(-50+(50*BVD(L)+23)),1
Ink 14
Screen 0
PM(SELLCC)=PM(SELLCC)-SELLCC2
PM(L)=PM(L)+SELLCC2
End If
End If
Goto SELLEND
End If
If SEC=NP+2
If GOOJFC<>L
LOKATE[23,14]
CHPRT["Sorry, you don't own the"]
LOKATE[23,15]
DPEN[4]
CHPRT["GET OUT OF JAIL FREE - Chance"+Pen$(14)+" card."]
DPEN[14]
Else
If SF$="y"
LOKATE[23,14]
CHPRT["You sell the "]
LOKATE[23,15]
DPEN[4]
CHPRT["GET OUT OF JAIL FREE - Chance"+Pen$(14)+" card."]
DPEN[14]
LOKATE[23,16]
QQUEST[25]
CHPRT["for "+Pen$(2)+C$+QQ$+"."]
DPEN[14]
GOOJFC=0
Ink 11
Screen 2
Paint 180,(-50+(50*BVD(L)+17)),1
Ink 14
PM(L)=PM(L)+25
Screen 0
UDATEMONEY
Else
CSELL:
LOKATE[23,13]
DPEN[14]
CHPRT["Which player wants to buy the"]
DPEN[4]
LOKATE[23,14]
CHPRT["GET OUT OF JAIL FREE - Chance"+Pen$(14)+" card?"]
LOKATE[23,15]
JUNK$="("
For SELFJ=1 To NP-1
JUNK$=JUNK$+Str$(SELFJ)+","
Next SELFJ
JUNK$=JUNK$+" or"+Str$(NP)+") ?"
CHPRT[JUNK$]
Clear Key
KEYGET
LOKATE[23,16]
CHPRT[A$]
SELLC=Val(A$)
If SELLC<1 or SELLC>NP
Goto CSELL
End If
CSELL2:
LOKATE[23,17]
CHPRT["What is the agreed selling price?"]
Clear Key
BD$=""
CSELLKEY:
NUMGET
B$=A$
If B$<>Chr$(13)
If B$=Chr$(8)
BD$=""
CLRINFO
Goto CSELL2
End If
BD$=BD$+B$
LOKATE[23,18]
CHPRT[BD$]
Goto CSELLKEY
End If
SELLC2=Val(BD$)
If((SELLC2/QQ)*QQ)<>SELLC2
CLRINFO
LOKATE[23,13]
CHPRT["You must use increments of "+Str$(QQ)]
Wait 10*DEL
CLRINFO
Goto CSELLKEY
End If
SELLC2=SELLC2/QQ
If SELLC2<0
Boom
CLRINFO
Goto SELLEND
End If
If PM(SELLC)<SELLC2
CLRINFO
LOKATE[23,13]
CHPRT[Pen$(PC(SELLC))+PL$(SELLC)+Pen$(14)+" doesn't have that much money! "]
Wait 10*DEL
CLRINFO
Goto SELLEND
End If
CSELL3:
LOKATE[23,18]
CHPRT[Pen$(PC(SELLC))+PL$(SELLC)+Pen$(14)+", do you agree? (Y/n) "]
Clear Key
If COMPPLY(SELLC)=1
If PM(SELLC)>200 and SELLC2<50
Clear Key
Put Key "y"
Else
Clear Key
Put Key "n"
End If
End If
KEYGET
LOKATE[23,19]
CHPRT[A$]
If COMPPLY(SELLC)=1
Wait 6*DEL
End If
If A$=Chr$(13)
A$="y"
End If
A$=Lower$(A$)
If A$<>"n" and A$<>"y"
Goto CSELL3
End If
If A$="n"
Boom
Wait 10*DEL
CLRINFO
Goto SELLEND
End If
GOOJFC=SELLC
Screen 2
Ink 5
Paint 180,(-50+(50*BVD(SELLC)+17)),1
Ink 11
Paint 180,(-50+(50*BVD(L)+17)),1
Ink 14
Screen 0
PM(SELLC)=PM(SELLC)-SELLC2
PM(L)=PM(L)+SELLC2
End If
End If
End If
Goto SELLEND
End If
LOKATE[23,13] : CHPRT["Please click on a property that you"]
LOKATE[23,14] : CHPRT["want to sell."]
LOKATE[23,16] : CHPRT["Click 'OK' or 'CANCEL'"]
LOKATE[23,17] : CHPRT["if you change your mind."]
SELLTOLOOP:
Gosub CLICK
If X=JUNKCAN or X=JUNKOK
Bell 1
Goto SELLEND
End If
LOKATE[23,12]
CLRINFO
PRTINFO[X]
LOKATE[23,15]
DPEN[14]
SELL1=X
If PROPOWN(SELL1)<>L
LOKATE[23,18]
CHPRT["Sorry, you don't own that"]
Goto SELLTOLOOP
End If
If HOUSE(SELL1)<>0
LOKATE[23,15]
CHPRT["You can't sell developed properties"]
Goto SELLTOLOOP
End If
DPEN[14]
SELL2:
LOKATE[23,16]
CHPRT["What is the agreed selling price? "]
Clear Key
BD$=""
SELLKEY:
NUMGET
B$=A$
If B$<>Chr$(13)
If B$=Chr$(8)
BD$=""
CLRINFO
Goto SELL2
End If
BD$=BD$+B$
LOKATE[23,17]
CHPRT[BD$]
Goto SELLKEY
End If
SELLPRICE=Val(BD$)
If((SELLPRICE/QQ)*QQ)<>SELLPRICE
CLRINFO
LOKATE[23,13]
CHPRT["You must use increments of "+Str$(QQ)]
Wait 10*DEL
CLRINFO
Goto SELLKEY
End If
SELLPRICE=SELLPRICE/QQ
If SELLPRICE<0
Boom
CLRINFO
Goto SELLEND
End If
If PM(SEC)<SELLPRICE
CLRINFO
LOKATE[23,13]
CHPRT[Pen$(PC(SEC))+PL$(SEC)+Pen$(14)+" doesn't have that much money! "]
Wait 10*DEL
CLRINFO
Goto SELL2
End If
SELL3:
LOKATE[23,18]
CHPRT[Pen$(PC(SEC))+PL$(SEC)+Pen$(14)+", do you agree? (Y/n) "]
Clear Key
If COMPPLY(SEC)=1
Gosub COMPSELL
End If
KEYGET
LOKATE[23,19]
CHPRT[A$]
If COMPPLY(SEC)=1
Wait 6*DEL
End If
If A$=Chr$(13)
A$="y"
End If
A$=Lower$(A$)
If A$<>"n" and A$<>"y"
Goto SELL3
End If
If A$="n"
Boom
CLRINFO
Goto SELLEND
End If
PROPOWN(SELL1)=SEC
UFILL[SELL1,L]
DFILL[SELL1,SEC]
PM(SEC)=PM(SEC)-SELLPRICE
PM(L)=PM(L)+SELLPRICE
UDATESETS
Bell 80
UDATEMONEY
If CURRENT(SELL1)=0
SOLDMORT
End If
SELLEND:
UDATEMONEY
Wait 4*DEL
CLRINFO
Gosub UPINFO
UDATESETS
Clear Key
If COMPPLY(L)=0
Show On
End If
Menu On
On Menu On
Return
TRADE:
SEC=Choice(2)
Menu Off
CLRINFO
LOKATE[23,13] : CHPRT["Please click on a property that you"]
LOKATE[23,14] : CHPRT["want to trade."]
LOKATE[23,16] : CHPRT["Click 'OK' or 'CANCEL'"]
LOKATE[23,17] : CHPRT["if you change your mind."]
TRADELOOP:
Gosub CLICK
CLRINFO
If X=JUNKCAN or X=JUNKOK
Bell 1
Goto TRADEEND
End If
LOKATE[23,12]
CLRINFO
PRTINFO[X]
LOKATE[23,15]
DPEN[14]
SELL1=X
If PROPOWN(SELL1)<>L
LOKATE[23,18]
CHPRT["Sorry, you don't own that"]
Goto TRADELOOP
End If
If HOUSE(SELL1)<>0
LOKATE[23,15]
CHPRT["You can't trade developed properties"]
Goto TRADELOOP
End If
DPEN[14]
LOKATE[23,16] : CHPRT["Please click on a property that you"]
LOKATE[23,17] : CHPRT["want to trade for."]
LOKATE[23,19] : CHPRT["Click 'OK' or 'CANCEL'"]
LOKATE[23,20] : CHPRT["if you change your mind."]
TRADELOOP2:
Gosub CLICK
CLRINFO
SELL2=X
If X=JUNKCAN or X=JUNKOK
Bell 1
Goto TRADEEND
End If
LOKATE[23,12]
PRTINFO[X]
LOKATE[23,15]
DPEN[14]
If PROPOWN(SELL2)<>SEC
LOKATE[23,18]
CHPRT["Sorry, "+Pen$(PC(SEC))+PL$(SEC)+Pen$(14)+" doesn't own that."]
Goto TRADELOOP2
End If
If HOUSE(SELL2)<>0
LOKATE[23,15]
CHPRT["You can't trade developed properties"]
Goto TRADELOOP2
End If
TRADE2:
LOKATE[23,18]
CHPRT[Pen$(PC(SEC))+PL$(SEC)+Pen$(14)+", do you agree? (Y/n) "]
Clear Key
If COMPPLY(SEC)=1
Gosub COMPTRADE
End If
KEYGET
LOKATE[23,19]
CHPRT[A$]
If COMPPLY(SEC)=1
Wait 6*DEL
End If
If A$=Chr$(13)
A$="y"
End If
A$=Lower$(A$)
If A$<>"n" and A$<>"y"
Goto TRADE2
End If
If A$="n"
Boom
Goto TRADEEND
End If
Swap PROPOWN(SELL1),PROPOWN(SELL2)
UFILL[SELL1,L]
UFILL[SELL2,SEC]
DFILL[SELL1,SEC]
DFILL[SELL2,L]
UDATESETS
UDATEMONEY
Bell 80
If CURRENT(SELL1)=0
SOLDMORT
End If
UDATEMONEY
If CURRENT(SELL2)=0
SELL1=SELL2
SEC=L
SOLDMORT
End If
UDATEMONEY
TRADEEND:
Wait 6*DEL
CLRINFO
Gosub UPINFO
Clear Key
If COMPPLY(L)=0
Show On
End If
Menu On
On Menu On
Return
SHO:
Menu Off
CLRINFO
SHOC=Choice(2)
Dec SHOC
Wait Vbl
Screen 1
Wait Vbl
Cls 0
Wait Vbl
Screen To Front 1
For J=0 To 14
Locate 38,J
Paper 14
Print " ";
Next J
Paper 0
Pen 14
Locate 0,0 : Print "NAME"; : Locate 40,0 : Print "NAME";
Locate 18,0 : Print "OWNER"; : Locate 59,0 : Print "OWNER";
If QQ=1
Locate 32,0 : Print "H"; : Locate 73,0 : Print "H";
Locate 34,0 : Print "RENT"; : Locate 75,0 : Print "RENT";
Else
Locate 30,0 : Print "H"; : Locate 71,0 : Print "H";
Locate 32,0 : Print "RENT"; : Locate 73,0 : Print "RENT";
End If
SHOY1=1 : SHOY2=1
For J1=1 To 25
If(PRICE(J1)>0) and(RENT(J1,0)<999) and((SHOC=NP+1) or(PROPOWN(J1)=SHOC))
Pen PCOLOR(J1)
Locate 0,SHOY1
Print PROP$(J1);
Pen PC(PROPOWN(J1))
Locate 18,SHOY1
Print PL$(PROPOWN(J1));
Pen 14
If QQ=1
Locate 31,SHOY1
Else
Locate 29,SHOY1
End If
If HOUSE(J1)=5
Print " H";
Else
Print HOUSE(J1);
End If
Pen 2
UN$="" : OFF$=""
If CURRENT(J1)>RENT(J1,0) or CURRENT(J1)=0
UN$=Paper$(2)+Pen$(0) : OFF$=Paper$(0)+Pen$(2)
End If
If QQ=1
Locate 33,SHOY1
Else
Locate 31,SHOY1
End If
If CURRENT(J1)=0
Print UN$;" MORT";OFF$;
Else
J1UNK=CURRENT(J1)
QQUEST[J1UNK]
Print UN$;QQ$;OFF$;
End If
Pen 14
Inc SHOY1
End If
If(J1+25)<41
If(PRICE(J1+25)>0) and(RENT(J1+25,0)<999) and((SHOC=NP+1) or(PROPOWN(J1+25)=SHOC))
Pen PCOLOR(J1+25)
Locate 40,SHOY2
Print PROP$(J1+25);
Pen PC(PROPOWN(J1+25))
Locate 59,SHOY2
Print PL$(PROPOWN(J1+25));
Pen 14
If QQ=1
Locate 72,SHOY2
Else
Locate 70,SHOY2
End If
If HOUSE(J1+25)=5
Print " H";
Else
Print HOUSE(J1+25);
End If
Pen 2
UN$="" : OFF$=""
If CURRENT(J1+25)>RENT(J1+25,0) or CURRENT(J1+25)=0
UN$=Paper$(2)+Pen$(0) : OFF$=Paper$(0)+Pen$(2)
End If
If QQ=1
Locate 74,SHOY2
Else
Locate 72,SHOY2
End If
If CURRENT(J1+25)=0
Print UN$;" MORT";OFF$;
Else
J1UNK=CURRENT(J1+25)
QQUEST[J1UNK]
Print UN$;QQ$;OFF$;
End If
Pen 14
Inc SHOY2
End If
End If
J1UNK=0
Next J1
For J1=6 To 36 Step 10
If SHOC=NP+1 or PROPOWN(J1)=SHOC
Pen PCOLOR(J1)
Locate 40,SHOY2
Print PROP$(J1);
Pen PC(PROPOWN(J1))
Locate 59,SHOY2
Print PL$(PROPOWN(J1));
Pen 14
If QQ=1
Locate 73,SHOY2
Else
Locate 71,SHOY2
End If
Print "-";
Pen 2
If QQ=1
Locate 74,SHOY2
Else
Locate 72,SHOY2
End If
UN$=Paper$(2)+Pen$(0) : OFF$=Paper$(0)+Pen$(2)
If CURRENT(J1)=0
Print UN$;" MORT";OFF$
Else
J1UNK=CURRENT(J1)
QQUEST[J1UNK]
Print QQ$;
End If
Pen 14
Inc SHOY2
End If
Next J1
For J1=13 To 29 Step 16
If SHOC=NP+1 or PROPOWN(J1)=SHOC
Pen PCOLOR(J1)
Locate 40,SHOY2
Print PROP$(J1);
Pen PC(PROPOWN(J1))
Locate 59,SHOY2
Print PL$(PROPOWN(J1));
Pen 14
If QQ=1
Locate 73,SHOY2
Else
Locate 71,SHOY2
End If
Print "-";
Pen 2
If QQ=1
Locate 74,SHOY2
Else
Locate 72,SHOY2
End If
If CURRENT(J1)=0
Print UN$;" MORT";OFF$;
Else
Print " N/A";
End If
Pen 14
Inc SHOY2
End If
Next J1
If GOOJFCC>0
If GOOJFCC=L or SHOC=NP+1
Pen 9
Locate 0,17
Centre "GET OUT OF JAIL FREE - C.CHEST "+Pen$(PC(GOOJFCC))+PL$(GOOJFCC)
Pen 14
End If
End If
If GOOJFC>0
If GOOJFC=L or SHOC=NP+1
Pen 5
Locate 0,18
Centre "GET OUT OF JAIL FREE - CHANCE "+Pen$(PC(GOOJFC))+PL$(GOOJFC)
Pen 14
End If
End If
If PARKING$="y"
Pen 4
Locate 0,19
QQUEST[PARKING]
Centre "Free Parking jackpot = "+Pen$(2)+C$+" "+QQ$
Pen 14
JUNK$=""
End If
If LH$="y"
Locate 0,20
Centre "Houses left ="+Str$(HOUSESLEFT)+" Hotels left ="+Str$(HOTELSLEFT)
End If
Locate 0,22
Centre "Click Left Mouse button to continue."
While Mouse Click<>1 : Wend
Sam Play 1
Screen To Front FCR
Clear Key
Screen 0
Gosub UPINFO
Clear Key
Hide On
While Mouse Key<>0 : Wend
While Mouse Click<>0 : Wend
If COMPPLY(L)=0
Show On
End If
Menu On
On Menu On
Return
HBACK:
CLRINFO
PM(L)=MONEYBACK
HOUSESLEFT=HOUSEBACK
HOTELSLEFT=HOTELBACK
For X=1 To 40
HOUSE(X)=HBACKUP(X) : CURRENT(X)=CURBACK(X)
If RENT(X,1)<>RENT(X,2)
Gosub HOUSEBOB
Paste Bob HX,HY,((X-1)/5+45)
Wait Vbl
If HOUSE(X)>0
Paste Bob HX,HY,SHAP
Wait Vbl
End If
Screen 2
Ink PCOLOR(X)
Bar DSX,DSY To DTX,DTY
If HOUSE(X)>0
Paste Bob DSX,DSY,DSHAP
End If
Ink 14
Screen 0
End If
Next X
UDATEMONEY
UDATEBOBS
Bell 1
Return
UPINFO:
If DUBBLE>0
J=L
Else
J=L-1
If J=0
J=NP
End If
End If
PRTINFO[PPOS(J)]
Return
COMPTRADE:
Clear Key
JUNK=1*-(PROPOWN(SET1(SELL2))=L)+1*-(PROPOWN(SET2(SELL2))=L)
JUNK2=1*-(PROPOWN(SET1(SELL1))=SEC)+1*-(PROPOWN(SET2(SELL1))=SEC)
JUNK3=1*-(PROPOWN(SET1(SELL2))=SEC)+1*-(PROPOWN(SET2(SELL2))=SEC)
If JUNK>JUNK2
Clear Key
Put Key "n"
Return
End If
If JUNK2<JUNK3
Clear Key
Put Key "n"
Return
End If
If JUNK=JUNK2
If PRICE(SELL1)>=PRICE(SELL2)
Clear Key
Put Key "y"
Return
Else
Clear Key
Put Key "n"
Return
End If
End If
If PP(SEC)<>3
If PRICE(SELL1)>=PRICE(SELL2)*(JUNK2-JUNK)
Clear Key
Put Key "y"
Return
Else
Clear Key
Put Key "n"
Return
End If
Else
JUNK=PRICE(SELL1)*PV1#(SELL1)
JUNK2=PRICE(SELL2)*PV1#(SELL2)
If JUNK>=JUNK2
Clear Key
Put Key "y"
Return
Else
Clear Key
Put Key "n"
Return
End If
End If
Return
COMPSELL:
Rem SELLPRICE=is selling price
Rem SELL1=the property number
Rem SEC=compnumber
Rem L=seller
Clear Key
JUNK=PRICE(SELL1)
If PROPOWN(SET1(SELL1))=PROPOWN(SET2(SELL1)) and PROPOWN(SET1(SELL1))<>0
If PROPOWN(SET1(SELL1))=SEC
JUNK=PRICE(SELL1)*3
Else
JUNK=PRICE(SELL1)*2
End If
End If
If PP(SEC)=3
JUNK=PRICE(SELL1)*PV1#(SELL1)
If PM(SEC)<JUNK
JUNK=PM(SEC)
End If
End If
If SELLPRICE<=JUNK
Clear Key
Put Key "y"
Else
Clear Key
Put Key "n"
End If
Return
COMPBUY:
Rem BUYPRICE=is buying price
Rem SELL1=the property number
Rem SEC = comp's number
Rem L=buyer's number
Clear Key
JUNK=0 : JUNK2=0
If PROPOWN(SET1(SELL1))=PROPOWN(SET2(SELL1)) and PROPOWN(SET1(SELL1))<>0
If PROPOWN(SET1(SELL1))=SEC
Clear Key
Put Key "n"
Return
End If
If PROPOWN(SET1(SELL1))=L
Clear Key
Put Key "n"
Return
End If
End If
If PM(SEC)>0
If PROPOWN(SET1(SELL1))=L or PROPOWN(SET1(SELL1))=SEC
JUNK=PRICE(SELL1)*3
End If
If PROPOWN(SET2(SELL1))=L or PROPOWN(SET2(SELL1))=SEC
JUNK=PRICE(SELL1)*3
End If
If JUNK=0
JUNK=PRICE(SELL1)*2
End If
Else
JUNK=PRICE(SELL1)
End If
If PP(SEC)=3
JUNK2=PRICE(SELL1)*10
If PM(SEC)<0
If(PM(SEC)+BUYPRICE)<0
Clear Key
Put Key "n"
Return
Else
Clear Key
Put Key "y"
Return
End If
End If
If BUYPRICE<JUNK2
Clear Key
Put Key "n"
Return
End If
JUNK=0 : JUNK2=0
JUNK=PRICE(SELL1)*PV1#(SELL1)
End If
If BUYPRICE>=JUNK
Clear Key
Put Key "y"
Else
Clear Key
Put Key "n"
End If
JUNK=0
Return
DLCC:
Screen 2
Ink 9
Bar 242,30 To 596,180
Screen Copy 3,270,26,480,45 To 2,314,32
JUNK=CCS1(CC)+16
Unpack JUNK To 4
Screen To Back 4
JUNK=CCX2(CC)-CCX1(CC)
JUNK=JUNK/2
JUNK=419-JUNK
Screen Copy 4,CCX1(CC),CCY1(CC),CCX2(CC),CCY2(CC) To 2,JUNK,55
Ink 14
Screen 0
Return
DLC:
Screen 2
Ink 5
Bar 242,30 To 596,180
Screen Copy 3,60,31,152,48 To 2,373,32
JUNK=CS1(C)+10
Unpack JUNK To 4
Screen To Back 4
JUNK=CX2(C)-CX1(C)
JUNK=JUNK/2
JUNK=419-JUNK
Screen Copy 4,CX1(C),CY1(C),CX2(C),CY2(C) To 2,JUNK,55
Ink 14
Screen 0
Return
Procedure KEYGET
If COMPPLY(L)=0
Show On
End If
MZ=0
Repeat
If Mouse Click=1
MZ=Mouse Zone
End If
A$=Inkey$
If DL$="n"
If MZ=43
A$="y"
OK
End If
If MZ=44
A$="n"
CANCEL
End If
Else
If MZ=41 or MZ=44
A$="y"
OK
End If
If MZ=42 or MZ=45
A$="n"
CANCEL
End If
End If
MZ=0
Until A$<>""
Hide On
MZ=0
End Proc
Procedure NUMGET
MZ=0
Repeat
If Mouse Click=1
MZ=Mouse Zone
End If
A$=Inkey$
If DL$="n"
If MZ=44
A$="-1"
Put Key Chr$(13)
CANCEL
End If
Else
If MZ=42 or MZ=45
A$="-1"
Put Key Chr$(13)
CANCEL
End If
End If
MZ=0
Until A$<>""
MZ=0
End Proc
Procedure DPEN[KI]
Pen KI
Screen 2
Pen KI
Screen 0
End Proc
Procedure DPAPER[KI]
Paper KI
Screen 2
Paper KI
Screen 0
End Proc
Procedure LOKATE[KX,KY]
Locate KX,KY
Screen 2
Locate KX+1,KY+2
Screen 0
End Proc
Procedure COMPLFTMORT[TP]
Clear Key
If PM(SEC)>(TP+200)
Clear Key
Put Key "y"
Else
Clear Key
Put Key "n"
End If
End Proc
Procedure SOLDMORT
UDATEMONEY
SELLM:
CLRINFO
TENPER=0 : TENPER2=0
TENPER=PRICE(SELL1)/2 : TENPER=TENPER+(PRICE(SELL1)/10)
TENPER2=PRICE(SELL1)/10
LOKATE[23,12]
CHPRT[Pen$(4)+"Attention!"+Pen$(14)+" - "+Pen$(PC(SEC))+PL$(SEC)+Pen$(14)+" "]
LOKATE[23,13]
CHPRT["The property you received is mortgaged."]
LOKATE[23,14]
QQUEST[TENPER]
CHPRT["You must either pay "+C$+QQ$+" to lift"]
LOKATE[23,15]
QQUEST[TENPER2]
CHPRT["the mortgage now or pay "+C$+QQ$+" now"]
LOKATE[23,16]
QQUEST[TENPER]
CHPRT["and another "+C$+QQ$+" when you lift the"]
LOKATE[23,17]
CHPRT["mortgage later."]
LOKATE[23,19]
CHPRT["Do you want to lift the mortgage now? (Y/n) "]
Clear Key
If COMPPLY(SEC)=1
COMPLFTMORT[TENPER]
End If
KEYGET
If COMPPLY(SEC)=1
Wait 6*DEL
End If
If A$=Chr$(13)
A$="y"
End If
LOKATE[23,20]
CHPRT[A$]
A$=Lower$(A$)
If A$<>"n" and A$<>"y"
Goto SELLM
End If
If A$="y"
PM(SEC)=PM(SEC)-TENPER
CURRENT(SELL1)=RENT(SELL1,0)
Else
PM(SEC)=PM(SEC)-TENPER2
End If
Bell 80
UDATEMONEY
CLRINFO
DPEN[14]
End Proc
Procedure UDATEBOBS
Wait Vbl
If D1<1
D1=6
End If
Paste Bob 1,1,D1+19
Wait Vbl
Paste Bob 1,1,D1+19
Wait Vbl
End Proc
Procedure M1
Rem Dragnet theme
Sam Play %1001,2
If Ntsc
Wait 360
Else
Wait 300
End If
End Proc
Procedure M2
Rem siren1
Sam Play %1001,3
If Ntsc
Wait 120
Else
Wait 100
End If
End Proc
Procedure M3
Rem Hi-Lo siren
Sam Play %1001,4
If Ntsc
Wait 270
Else
Wait 225
End If
End Proc
Procedure SHUFFLECHANCE
For J=1 To 16
K=(Rnd(15)+1)
Swap CHANCE1$(J),CHANCE1$(K)
Swap CHANCE2$(J),CHANCE2$(K)
Swap CHANCE3$(J),CHANCE3$(K)
Swap CHANCE4$(J),CHANCE4$(K)
Swap CMON(J),CMON(K)
Swap CSPEC(J),CSPEC(K)
Swap CS1(J),CS1(K)
Swap CX1(J),CX1(K)
Swap CY1(J),CY1(K)
Swap CX2(J),CX2(K)
Swap CY2(J),CY2(K)
Next J
End Proc
Procedure SHUFFLECHEST
For J=1 To 16
K=(Rnd(15)+1)
Swap CCHEST1$(J),CCHEST1$(K)
Swap CCHEST2$(J),CCHEST2$(K)
Swap CCHEST3$(J),CCHEST3$(K)
Swap CCMON(J),CCMON(K)
Swap CCSPEC(J),CCSPEC(K)
Swap CCS1(J),CCS1(K)
Swap CCX1(J),CCX1(K)
Swap CCY1(J),CCY1(K)
Swap CCX2(J),CCX2(K)
Swap CCY2(J),CCY2(K)
Next J
End Proc
Procedure CLRINFO
Ink 0
Bar 182,96 To 560,167
Wait Vbl
Screen 2
Ink 0
Bar 242,109 To 596,183
Wait Vbl
Screen 0
End Proc
Procedure PRTINFO[Q]
LOKATE[23,12]
DPEN[PCOLOR(Q)]
CHPRT[PROP$(Q)]
DPEN[14]
If Q=39
LOKATE[23,14]
If COUNTRY=1 or COUNTRY=8 or COUNTRY=9
CHPRT["Pay "+C$+"75"]
Else
QQUEST[100]
CHPRT["Pay "+C$+QQ$]
End If
Pop Proc
End If
If Q=5
If CH$<>"y"
QQUEST[200]
LOKATE[23,14] : CHPRT["Pay "+C$+QQ$]
Else
LOKATE[23,14] : CHPRT["Pay 10%"]
LOKATE[23,15] : CHPRT["or"]
LOKATE[23,16] : CHPRT[C$+"200"]
End If
Pop Proc
End If
If Q=1
LOKATE[23,14] : QQUEST[200] : CHPRT["(Collect "+C$+QQ$+")"]
Pop Proc
End If
If PRICE(Q)>0
LOKATE[23,13] : QQUEST[PRICE(Q)] : CHPRT["Price "+C$+QQ$]
End If
If RENT(Q,0)>0 and RENT(Q,0)<999
If CURRENT(Q)<>RENT(Q,0)
RV$=Paper$(14)+Pen$(0) : RO$=Paper$(0)+Pen$(14)
LOKATE[28,14]
Else
RV$="" : RO$=""
LOKATE[23,14]
End If
QQUEST[CURRENT(Q)]
CHPRT[" "+RV$+"Rent "+C$+QQ$+RO$+" "]
End If
If RENT(Q,0)=1002
QQUEST[CURRENT(Q)]
LOKATE[23,14] : CHPRT["Rent "+C$+QQ$]
End If
If PRICE(Q)>0
LOKATE[23,16]
CHPRT["Owner - "+Pen$(PC(PROPOWN(Q)))+PL$(PROPOWN(Q))]
DPEN[14]
End If
End Proc
Procedure UDATENAME
Ink 0
UDMJ2=42+(8*NP)
UDMJ3=320
If Len(C$)=2
UDMJ3=304
End If
Bar 182,42 To UDMJ3,UDMJ2
For UDMJ=1 To NP
If Len(C$)=1
X1$=Pen$(14)+Right$(Str$(UDMJ),1)+") "
Else
X1$=" "
End If
X2$=PL$(UDMJ)+" " : X2$=Left$(X2$,13)
Locate 23,4+UDMJ : Print X1$;Pen$(PC(UDMJ));X2$
Next UDMJ
Pen 14
End Proc
Procedure UDATEMONEY
For UDMJ=1 To DNP
If UDMJ<=NP
X$=Str$(PM(UDMJ)*QQ)+" " : X$=Left$(X$,10) : X$=Right$(X$,9)
If Len(C$)=1
Locate 40,4+UDMJ : Pen 2
Else
Locate 38,4+UDMJ : Pen 2
End If
If PM(UDMJ)<0
Pen 4
End If
Print C$;" ";X$
End If
Screen 1
HRM$=Str$(PM(UDMJ))
Locate 0,0
HRM$=" "+HRM$
HRM$=Right$(HRM$,7)
Paper 0
Pen 2
If PM(UDMJ)<0
Pen 4
End If
If PL$(UDMJ)=""
HRM$=" Dead " : Pen 14
End If
Print HRM$
Screen 2
Screen Copy 1,0,0,56,8 To 2,61,(BVD(UDMJ)*50)-33
Pen 14
Ink 0
JUNK=-48+(50*(BVD(UDMJ)))
If PL$(UDMJ)=""
Bar 4,JUNK To 51,JUNK+23
Paste Bob 4,JUNK,70
Else
Paste Bob 4,JUNK,DLPC(UDMJ)-28
End If
Screen 0
Next UDMJ
Pen 14
Wait Vbl
HIGHLIGHTTURN
End Proc
Procedure UDATEPROP
For UDMJ=1 To NP
X$=PROP$(PPOS(UDMJ))+" " : X$=Left$(X$,18)
Locate 52,4+UDMJ : Pen PCOLOR(PPOS(UDMJ)) : Print X$
Next UDMJ
Pen 14
End Proc
Procedure UDATESETS
For J=1 To 40
X=PROPOWN(J)
If PRICE(J)<>0
If CP$="y"
If X=0
Ink 0
Else
Ink DPC(X)
End If
If J<11
B1=BX(J)+5 : B2=BY(J)-19 : B3=B1+20 : B4=B2+2
Else If J=>11 and J<21
B1=BX(J)+66 : B2=BY(J) : B3=B1+5 : B4=B2+8
Else If J=>21 and J<31
B1=BX(J)-28 : B2=BY(J)+19 : B3=B1+20 : B4=B2+2
Else If J=>31
B1=BX(J)-68 : B2=BY(J) : B3=B1+5 : B4=B2+8
End If
Bar B1,B2 To B3,B4
B1=0 : B2=0 : B3=0 : B4=0
End If
End If
If CURRENT(J)=0
Goto UDS
End If
If RENT(J,5)>RENT(J,0) and X>0
If PROPOWN(SET1(J))=X and PROPOWN(SET2(J))=X and HOUSE(J)=0
CURRENT(J)=RENT(J,0)*2
Else
CURRENT(J)=RENT(J,HOUSE(J))
End If
End If
UDS:
Next J
For J=1 To NP
RR=1*-(PROPOWN(6)=J)+1*-(PROPOWN(16)=J)+1*-(PROPOWN(26)=J)+1*-(PROPOWN(36)=J)
For JJ=6 To 36 Step 10
If PROPOWN(JJ)=J and CURRENT(JJ)>0
CURRENT(JJ)=RRRENT(RR)
Else
If PROPOWN(JJ)=0
CURRENT(JJ)=25
End If
End If
Next JJ
Next J
End Proc
Procedure COMPITAX
Clear Key
TENPER=0
TENPER=TENPER+PM(L)
For JJ=1 To 40
If PROPOWN(JJ)=L
TENPER=TENPER+PRICE(JJ)
TENPER=TENPER+(HOUSE(JJ)*HOUSECOST(JJ))
End If
Next JJ
If TENPER>=2000
Clear Key
Put Key "y"
Else
Clear Key
Put Key "n"
End If
Wait 3*DEL
End Proc
Procedure COMPBUY
ZZ=PPOS(L)
If PP(L)<3
If PM(L)<=0
Clear Key
Put Key "n"
Wait 4*DEL
Pop Proc
End If
If PM(L)>(PRICE(PPOS(L)))
Clear Key
Put Key "y"
Wait 4*DEL
Pop Proc
End If
Clear Key
Put Key "n"
Else
If PROPOWN(SET1(ZZ))=PROPOWN(SET2(ZZ))
Clear Key
Put Key "y"
Wait 4*DEL
Pop Proc
End If
If PROPOWN(SET1(ZZ))=L or PROPOWN(SET2(ZZ))=L
Clear Key
Put Key "y"
Wait 4*DEL
Pop Proc
End If
If PM(L)>((PRICE(PPOS(L)))/2)
Clear Key
Put Key "y"
Wait 4*DEL
Pop Proc
End If
Clear Key
Put Key "n"
End If
Wait 4*DEL
End Proc
Procedure COMPBID
JUNK=0 : JUNK$=""
X=PPOS(L)
MOSTBID=PRICE(X)
LOWBID=HIBID
If LOWBID>PRICE(X)
If PROPOWN(SET1(X))<>0 and PROPOWN(SET1(X))=PROPOWN(SET2(X))
If PP(H)=3
If PROPOWN(SET1)<>H
If RENT(X,0)<999
JUNK=PM(PROPOWN(SET1(X)))-HIBID
JUNK=JUNK/HOUSECOST(X)
If JUNK>H2
JUNK=H2
End If
If JUNK<1
JUNK=0
End If
JUNK=RENT(X,JUNK)
End If
JUNK=JUNK*PV1#(X)
MOSTBID=JUNK
Else
MOSTBID=PRICE(X)*(1+PV1#(X))
End If
Else
MOSTBID=MOSTBID*3
End If
Else
If PP(H)=3
MOSTBID=PRICE(X)*PV1#(X)
Else
MOSTBID=MOSTBID+(PRICE(X)/2)
End If
End If
End If
If CURRENT(X)=0
MOSTBID=MOSTBID-(PRICE(X)/2)
End If
If MOSTBID>PM(H) and PP(H)<>3
If JUNK2=0
MOSTBID=PM(H)+(PRICE(X)/2)
Else
MOSTBID=PM(H)
End If
End If
If PP(H)=3
If JUNK<>0
If MOSTBID>PM(H)
MOSTBID=PM(H)
End If
Else
JUNK=200
For X=1 To 40
If CURRENT(X)>JUNK
JUNK=CURRENT : JUNK2=X
Next X
If MOSTBID>PM(H)-JUNK
MOSTBID=PM(H)-JUNK
End If
End If
End If
End If
If LOWBID>MOSTBID
Clear Key
Put Key Chr$(13)
Pop Proc
End If
MYBID=LOWBID+20
If MYBID<=HIBID
MYBID=0
End If
If HIBID=MOSTBID-1
MYBID=MOSTBID
End If
Clear Key
QQUEST[MYBID]
Put Key QQ$+Chr$(13)
JUNK=0 : JUNK2=0
End Proc
Procedure COMEONALONG
BLANK$=" "
If PM1=0
NONBIDDERS=1
End If
For X=1 To NP
If PL$(X)=""
NONBIDDERS=NONBIDDERS+1
End If
Next X
LOKATE[24,15] : CHPRT[BLANK$]
LOKATE[24,16] : CHPRT[BLANK$]
LOKATE[24,17] : CHPRT[BLANK$]
LOKATE[24,18] : CHPRT[BLANK$]
LOKATE[24,19] : CHPRT[BLANK$]
JUNK=16
If PPOS(L)=6 or PPOS(L)=16 or PPOS(L)=26 or PPOS(L)=36
If PPOS(L)<>6 and PROPOWN(6)<>0
B$=Pen$(PCOLOR(6))+PROP$(6)+Pen$(14)+" owned by "+Pen$(PC(PROPOWN(6)))+PL$(PROPOWN(6))
LOKATE[24,JUNK]
CHPRT[B$]
Inc JUNK
End If
If PPOS(L)<>16 and PROPOWN(16)<>0
B$=Pen$(PCOLOR(6))+PROP$(16)+Pen$(14)+" owned by "+Pen$(PC(PROPOWN(16)))+PL$(PROPOWN(16))
LOKATE[24,JUNK]
CHPRT[B$]
Inc JUNK
End If
If PPOS(L)<>26 and PROPOWN(26)<>0
B$=Pen$(PCOLOR(6))+PROP$(26)+Pen$(14)+" owned by "+Pen$(PC(PROPOWN(26)))+PL$(PROPOWN(26))
LOKATE[24,JUNK]
CHPRT[B$]
Inc JUNK
End If
If PPOS(L)<>36 and PROPOWN(36)<>0
B$=Pen$(PCOLOR(6))+PROP$(36)+Pen$(14)+" owned by "+Pen$(PC(PROPOWN(36)))+PL$(PROPOWN(36))
LOKATE[24,JUNK]
CHPRT[B$]
Inc JUNK
End If
Else
If PROPOWN(SET1(PPOS(L)))<>0
B$=Pen$(PCOLOR(PPOS(L)))+PROP$(SET1(PPOS(L)))+Pen$(14)+" owned by "
B$=B$+Pen$(PC(PROPOWN(SET1(PPOS(L)))))+PL$(PROPOWN(SET1(PPOS(L))))
LOKATE[24,16]
CHPRT[B$]
Inc JUNK
End If
If SET1(PPOS(L))<>SET2(PPOS(L)) and PROPOWN(SET2(PPOS(L)))<>0
B$=Pen$(PCOLOR(PPOS(L)))+PROP$(SET2(PPOS(L)))+Pen$(14)+" owned by "
B$=B$+Pen$(PC(PROPOWN(SET2(PPOS(L)))))+PL$(PROPOWN(SET2(PPOS(L))))
LOKATE[24,JUNK]
CHPRT[B$]
End If
End If
If B$<>""
Wait 120
End If
B$=""
JUNK=0
HIBID=0
If NONBIDDERS=1
H=L
Else
H=M
If H>NP
H=1
End If
End If
M=0
A2:
Inc H
If H>NP
H=1
End If
If PL$(H)=""
Goto A2
End If
A3:
DPAPER[0]
B$=""
QQUEST[HIBID]
LOKATE[22,15] : CHPRT[BLANK$]
LOKATE[22,16] : CHPRT[BLANK$]
LOKATE[22,17] : CHPRT[BLANK$]
LOKATE[22,18] : CHPRT[BLANK$]
LOKATE[22,19] : CHPRT[BLANK$]
If QQ<>1
JUNK$=Str$(QQ)
LOKATE[24,15] : CHPRT[Pen$(12)+"{ You must bid in increments of "+C$+JUNK$+" } "]
End If
LOKATE[24,17] : CHPRT[Pen$(14)+"The highest bid is "+C$+Pen$(2)+QQ$+Pen$(14)+" by "+Pen$(PC(M))+PL$(M)+Pen$(14)]
LOKATE[24,18] : CHPRT[" "+Pen$(PC(H))+PL$(H)+","+S$+Pen$(14)+" "]
LOKATE[24,19] : CHPRT["bid higher than "+C$+Pen$(2)+QQ$+Pen$(14)+" or '0' for no bid."]
JUNK$=""
Clear Key
DPEN[2]
If COMPPLY(H)=1
Hide On
COMPBID
Else
Show On
End If
LOKATE[23,20]
CHPRT[BLANK$]
BKEY:
NUMGET
B$=A$
If B$="-1"
B$=Chr$(13)
End If
If B$<>Chr$(13)
If B$=Chr$(8) or B$=Chr$(29)
JBH=Len(BID$)
BID$=Left$(BID$,JBH-1)
LOKATE[23,20]
CHPRT[BLANK$]
LOKATE[23,20]
CHPRT[BID$]
Goto BKEY
End If
BID$=BID$+B$
LOKATE[23,20]
CHPRT[BID$]
If COMPPLY(H)=1
Wait DEL
End If
Goto BKEY
End If
If COMPPLY(H)=1
Wait DEL
End If
BID=Val(BID$)
BID$=""
If BID<>0 and BID<=HIBID
Boom : Goto A3
End If
If((BID/QQ)*QQ)<>BID
Shoot : Goto A3
End If
BID=BID/QQ
If BID>HIBID
HIBID=BID : M=H : ZEROBIDS=0 : Goto A2
End If
If HIBID=0
BIDDERS=1
Else
BIDDERS=NONBIDDERS
End If
Inc ZEROBIDS
If PM1=1
If HIBID=0
JUNK=1
Else
JUNK=-1
End If
Else
JUNK=0
End If
If ZEROBIDS=NP-BIDDERS+JUNK
DPEN[14]
Bell 25
CLRINFO
LOKATE[24,17]
CHPRT[" Property goes to "+Pen$(PC(M))+PL$(M)+Pen$(14)]
QQUEST[HIBID]
LOKATE[24,19]
CHPRT["with a bid of "+C$+Pen$(2)+" "+QQ$+"."]
Wait 10*DEL
DFILL[PPOS(L),M]
DPEN[14]
Ink 0
Bar 182,104 To 560,167
PROPOWN(PPOS(L))=M
PM(M)=PM(M)-HIBID
SEC=M
SELL1=PPOS(L)
UDATESETS
If CURRENT(PPOS(L))=0 and M<>0
SOLDMORT
UDATESETS
UDATEMONEY
End If
Goto PROPEND
End If
Goto A2
PROPEND:
MOV=0
If M<>0
If RENT(PPOS(L),0)=1002
RR=1*-(PROPOWN(6)=M)+1*-(PROPOWN(16)=M)+1*-(PROPOWN(26)=M)+1*-(PROPOWN(36)=M)
For JJ=6 To 36 Step 10
If PROPOWN(JJ)=M and CURRENT(JJ)>0
CURRENT(JJ)=RRRENT(RR)
End If
Next
End If
If PROPOWN(SET1(PPOS(L)))=M and PROPOWN(SET2(PPOS(L)))=M
If CURRENT(PPOS(L))=RENT(PPOS(L),0)
CURRENT(PPOS(L))=RENT(PPOS(L),0)*2
End If
If CURRENT(SET1(PPOS(L)))>0
CURRENT(SET1(PPOS(L)))=RENT(SET1(PPOS(L)),0)*2
End If
If CURRENT(SET2(PPOS(L)))>0
CURRENT(SET2(PPOS(L)))=RENT(SET2(PPOS(L)),0)*2
End If
End If
End If
Clear Key
End Proc
Procedure PROP
Rem mortgaged
If CURRENT(PPOS(L))=0 and PROPOWN(PPOS(L))<>0
LOKATE[23,17]
CHPRT[Paper$(14)+Pen$(0)+" MORTGAGED "]
DPEN[14] : DPAPER[0]
Goto PROPEND
End If
Rem Free Parking
If PPOS(L)=21 and PARKING$="y"
LOKATE[23,14]
DPEN[14]
If PARKING=0
CHPRT["Sorry, there's no Jackpot."]
Else
CHPRT["You win the Free Parking Jackpot!"]
LOKATE[23,15]
QQUEST[PARKING]
CHPRT[" You Collect "+Pen$(2)+C$+QQ$+Pen$(14)+"!"]
If PARKING<100
LOKATE[23,17]
CHPRT["Don't spend it all in one place."]
End If
PM(L)=PM(L)+PARKING
PARKING=0
End If
Goto PROPEND
End If
If RD=1
Rem Advance token to nearest RR - double rent.
RD=0
PM(L)=PM(L)-CURRENT(PPOS(L))
M=PROPOWN(PPOS(L))
PM(M)=PM(M)+CURRENT(PPOS(L))
M=0
End If
If PROPOWN(PPOS(L))>0 and PRICE(PPOS(L))>0 and RENT(PPOS(L),0)<999
PM(L)=PM(L)-CURRENT(PPOS(L))
ALLPROPS=1
If PROPOWN(PPOS(L))>0 and(PROPOWN(PPOS(L))=PROPOWN(SET1(PPOS(L)))) and(PROPOWN(PPOS(L))=PROPOWN(SET2(PPOS(L))))
ALLPROPS=2
End If
PM(PROPOWN(PPOS(L)))=PM(PROPOWN(PPOS(L)))+CURRENT(PPOS(L))
M=PROPOWN(PPOS(L))
Goto PROPEND
End If
If PPOS(L)=5
DPEN[14]
LOKATE[23,19]
If CH$="y"
CHPRT["Will you pay "+C$+"200 instead of 10%?(Y/n)"]
TENPER=0
TENPER=TENPER+PM(L)
For JJ=1 To 40
If PROPOWN(JJ)=L
TENPER=TENPER+PRICE(JJ)
TENPER=TENPER+(HOUSE(JJ)*HOUSECOST(JJ))
End If
Next JJ
ITAXKEY:
If COMPPLY(L)=1
COMPITAX
End If
KEYGET
If A$=Chr$(13)
A$="y"
End If
LOKATE[23,20]
CHPRT[A$]
If COMPPLY(L)=1
Wait 3*DEL
End If
A$=Lower$(A$)
If A$="y"
LOKATE[24,20]
CHPRT["Total worth = "+C$+Str$(TENPER)+". "+"You pay "+C$+"200."]
PM(L)=PM(L)-200
If PARKING$="y"
PARKING=PARKING+200
End If
Goto PROPEND
End If
If A$<>"n"
Goto ITAXKEY
End If
LOKATE[24,20]
JUNK=TENPER
TENPER=(TENPER/10)
CHPRT["Total worth = "+C$+Str$(JUNK)+". "+"You pay "+C$+Str$(TENPER)+"."]
PM(L)=PM(L)-TENPER : TENPER=0 : JUNK=0
Else
LOKATE[23,20]
QQUEST[200]
CHPRT["You pay "+C$+QQ$+"."]
PM(L)=PM(L)-200
TENPER=200
End If
If PARKING$="y"
PARKING=PARKING+TENPER
End If
Goto PROPEND
End If
Rem railroads
If PROPOWN(PPOS(L))>0 and RENT(PPOS(L),0)=1002
PM(L)=PM(L)-CURRENT(PPOS(L))
M=PROPOWN(PPOS(L))
PM(M)=PM(M)+CURRENT(PPOS(L))
Goto PROPEND
End If
Rem utilities
If PROPOWN(PPOS(L))>0 and((PPOS(L)=13) or(PPOS(L)=29))
If PROPOWN(PPOS(L))=L
Goto PROPEND
End If
UTIMES=4
If PROPOWN(13)=PROPOWN(29)
UTIMES=10
End If
If UD=1
UD=0
UTIMES=10
End If
LOKATE[23,17]
CHPRT["Amount shown on dice is "+Str$(D1+D2)+"."]
LOKATE[23,19]
UT=(D1+D2)*UTIMES
QQUEST[UT]
CHPRT["You owe "+C$+QQ$+"."]
PM(L)=PM(L)-UT
M=PROPOWN(PPOS(L))
PM(M)=PM(M)+UT
If COMPPLY(L)=1
Wait 6*DEL
End If
Goto PROPEND
End If
If PROPOWN(PPOS(L))=0 and PRICE(PPOS(L))>0
LOKATE[23,17]
BUY:
DPEN[14]
CHPRT["Do you wish to buy it? (Y/n) "]
Clear Key
AKEY:
If COMPPLY(L)=1
COMPBUY
End If
KEYGET
If A$=Chr$(13)
A$="y"
End If
LOKATE[23,18]
CHPRT[A$]
If COMPPLY(L)=1
Wait 3*DEL
End If
A$=Lower$(A$)
If A$="y"
PROPOWN(PPOS(L))=L
PM(L)=PM(L)-PRICE(PPOS(L))
M=L
Wait 5*DEL
LOKATE[23,17]
CHPRT[" "]
LOKATE[23,18]
CHPRT[" "]
DFILL[PPOS(L),L]
Goto PROPEND
End If
AUCTION:
If PA$="n"
Goto PROPEND
End If
COMEONALONG
Else
Goto PROPEND
End If
PROPEND:
MOV=0
UDATESETS
UDATEMONEY
PRTINFO[PPOS(L)]
End Proc
Procedure SHUFFLECHIP
For CNJ=1 To 12
CNX=Rnd(11)+1
Swap CHIPNAME$(CNJ),CHIPNAME$(CNX)
Next
End Proc
Procedure TWORTH
WORTH=0
WORTH=WORTH+PM(L)
For JJ=1 To 40
If PROPOWN(JJ)=L
If CURRENT(JJ)=0
WORTH=WORTH+(PRICE(JJ)/2)
Else
WORTH=WORTH+PRICE(JJ)
End If
If QS$="y" and HOUSE(JJ)=5
WORTH=WORTH+((HOUSE(JJ)-1)*HOUSECOST(JJ))
Else
WORTH=WORTH+(HOUSE(JJ)*HOUSECOST(JJ))
End If
End If
Next JJ
End Proc
Procedure UDATEMENUS
Menu Del
Screen FCR
Paper 0
Pen 14
Menu$(1)="Project "
Menu$(2)="Property "
Menu$(3)="Buy "
Menu$(4)="Sell "
Menu$(5)="Trade "
Menu$(6)="ShowProperties "
Menu$(1,1)="LOAD GAME "
Menu$(1,2)="SAVE GAME "
Menu$(1,3)=" "," "
Menu$(1,4)="ABOUT "
If FCR=0
Menu$(1,5)="Deluxe GFX "
Else
Menu$(1,5)="Classic GFX "
End If
Menu$(1,6)=" "," "
Menu$(1,7)="KILL PLAYER "
Menu$(1,8)=" "," "
Menu$(1,9)="QUIT ALL "
Menu$(2,1)="BUY HOUSE "
Menu$(2,2)="SELL HOUSE "
Menu$(2,3)=" "," "
Menu$(2,4)="MORTGAGE "
Menu$(2,5)="LIFT MORT. "
Menu$(2,6)=" "," "
Menu$(2,7)="SHOW DEED "
Menu Del(3)
Menu$(3)="Buy "
For J=1 To NP
Pen(PC(J)) : Menu$(3,J)=Left$(("FROM "+PL$(J)+" "),19)
Next J
Paper 0
Pen 14
Menu Del(4)
Menu$(4)="Sell "
For J=1 To NP
Pen(PC(J)) : Menu$(4,J)=Left$(("TO "+PL$(J)+" "),17)
Next J
Pen 14
Menu$(4,NP+1)=" "," "
Paper 5
Pen 0
Menu$(4,NP+2)="OUT OF JAIL - C "
Paper 9
Menu$(4,NP+3)="OUT OF JAIL - CC "
Paper 0
Pen 14
Menu Del(5)
Menu$(5)="Trade "
For J=1 To NP
Pen(PC(J)) : Menu$(5,J)=Left$(("WITH "+PL$(J)+" "),19)
Next J
Paper 0
Pen 14
Menu Del(6)
Menu$(6)="ShowProperties "
For J=0 To NP
Pen(PC(J)) : Menu$(6,J+1)=Left$(("OWNED BY "+PL$(J)+" "),23)
Next J
Pen 14
Menu$(6,NP+2)="ALL PLAYERS "
If PM$="y"
Menu$(2,8)=" "," "
Menu$(2,9)="GET LOAN "
End If
Menu Calc
Screen 0
End Proc
Procedure DFILL[DFPOS,DFPLAY]
Screen 2
JUNK=-50+(50*BVD(DFPLAY))
Ink PCOLOR(DFPOS)
If DFPOS=13
Ink 9
End If
Paint DFX(DFPOS),DFY(DFPOS)+JUNK,1
Ink 14
Screen 0
End Proc
Procedure UFILL[DFPOS,DFPLAY]
Screen 2
JUNK=-50+(50*BVD(DFPLAY))
Ink 11
Paint DFX(DFPOS),DFY(DFPOS)+JUNK,1
Ink 14
Screen 0
End Proc
Procedure _COPYRIGHT[YDISPLAY]
Auto View Off
Unpack 10 To 7
For Y=2 To Screen Height/2 Step 2
Screen Display 7,,YDISPLAY+Screen Height/2-Y,,Y*2
Screen Offset 7,,Screen Height/2-Y
View
Wait Vbl
Next
Screen Copy 7 To 1
Screen Close 7
Auto View On
End Proc
Procedure CHPRT[CHP$]
SS$=""
JUNK=47-(Len(CHP$))
JUNK=JUNK/2
If JUNK<1
JUNK=0
End If
JUNK2=JUNK+5
For X=1 To JUNK
SS$=SS$+Cright$
Next X
Print SS$;CHP$;
Screen 2
For X=1 To 5
SS$=SS$+Cright$
Next X
Print SS$;CHP$
Screen 0
End Proc
Procedure _TEXTHIGHLIGHT[_XPOS,_YPOS,_TEXT$,_COLOUR,_HIGHLIGHT_COLOUR]
Gr Writing 0
If Len(C$)>1
_XPOS=_XPOS-2
End If
_XPOS=_XPOS*8 : Add _XPOS,1
_YPOS=_YPOS*8 : Add _YPOS,7
Ink _HIGHLIGHT_COLOUR,0
For R=1 To 3
If R>1 and R<3
Text _XPOS-2+R,_YPOS-1,_TEXT$
End If
Text _XPOS-2+R,_YPOS,_TEXT$
If R>1 and R<3
Text _XPOS-2+R,_YPOS+1,_TEXT$
End If
Next R
Ink _COLOUR
Text _XPOS,_YPOS,_TEXT$
Ink 0
End Proc
Procedure DICEROLL
For _X=1 To 7
_D1=Rnd(5)+1
_D2=Rnd(5)+1
Paste Bob 1,1,_D1+19
Paste Bob 20,30,_D2+19
Screen 2
Paste Bob 472,30,_D1+97
Paste Bob 530,30,_D2+103
Screen 0
Play %100,40,0
Play %100,50,0
Wait 1+DEL/7
Play Off
Wait 1+DEL/4
Next _X
End Proc
Procedure HIGHLIGHTTURN
_TEXTHIGHLIGHT[26,4+L,PL$(L),PC(L),14]
Screen 2
JUNK1=L
For JJ=1 To NP
If JJ=JUNK1
Ink 4
Else
Ink 11
End If
JUNK=-48+(50*BVD(JJ))
Box 4,JUNK To 51,JUNK+23
Next JJ
Screen 0
JUNK=0
Ink 14
End Proc
UNHIGHLIGHT:
_TEXTHIGHLIGHT[26,4+L,PL$(L)+" ",PC(L),0]
Return
WARNING:
CLRINFO
LOKATE[23,12]
CHPRT[Paper$(14)+Pen$(1)+" ATTENTION!!! "]
DPAPER[0] : DPEN[14]
LOKATE[23,14]
CHPRT[Pen$(PC(L))+PL$(L)]
DPEN[14]
LOKATE[23,16]
CHPRT["You are out of money!"]
LOKATE[23,18]
CHPRT["If you roll the dice before you raise"]
LOKATE[23,19]
CHPRT["enough money you will be removed"]
LOKATE[23,20]
CHPRT["from the game!"]
Flash 12,"(f00,1)(0f0,1)(00f,1)(000,1)(fff,1)"
Screen 2
Flash 12,"(f00,1)(0f0,1)(00f,1)(000,1)(fff,1)"
Screen 0
For J=1 To 20
Wait Vbl
Bell
Next J
Wait 10*DEL
Flash Off
Colour 12,$BFF
Screen 2
Flash Off
Colour 12,$BFF
Screen 0
Clear Key
Return
CLICK:
While Mouse Click<>1 : Wend
CLRINFO
X=Mouse Zone
If DL$="n"
If X<>47 and X<>43 and X<>44
Sam Play 1
End If
Else
If X<>47 and X<>41 and X<>42 and X<>44 and X<>45
Sam Play 1
End If
End If
If DL$="n"
If X=43
OK
End If
If X=44
CANCEL
End If
Else
If X=41 or X=44
OK
End If
If X=42 or X=45
CANCEL
End If
End If
Return
COMPROLL:
CR1:
Wait 3*DEL
UDATESETS
CHOUSE=0 : X1=0 : NM=0
If PM(L)<0 and GOOJFC=L and SF$="y"
PM(L)=PM(L)+25
GOOJFC=0
Screen 2
Ink 11
Paint 180,(-50+(50*BVD(L)+17)),1
Ink 14
Screen 0
End If
If PM(L)<0 and GOOJFCC=L and SF$="y"
PM(L)=PM(L)+25
GOOJFCC=0
Screen 2
Ink 11
Paint 180,(-50+(50*BVD(L)+23)),1
Ink 14
Screen 0
End If
If PM(L)<0
If PM$="y"
Gosub COMPLOAN
End If
NM=0
For X=40 To 1 Step -1
If PROPOWN(X)=L and HOUSE(X)>0
Inc NM : M(NM)=X
End If
Next X
If PM(L)<0 and NM>0
CLRINFO
Gosub COMPSELLHOUSES
Goto CR1
End If
NM=0
If PM(L)<0
Gosub COMPMORT
UDATESETS
End If
If PM(L)<0
Goto CROLLEND
End If
End If
NM=0
For X=1 To 40
If PROPOWN(X)=L and CURRENT(X)=0
Inc NM
M(NM)=X
End If
Next X
TENPER=PRICE(M(1))
TENPER=(TENPER/2)
TENPER=TENPER+(PRICE(M(1))/10)
If NM<>0 and PM(L)>TENPER+150
CLRINFO
Gosub LIFTMORT
End If
CBH:
For J=0 To 30 Step 10
X1=J+2
CBH1:
X2=SET1(X1) : X3=SET2(X1)
If LH$="y" and HOTELSLEFT=0 and HOUSESLEFT=0
Goto CBH3
End If
If HOUSECOST(X1)=>PM(L)
Goto CBH3
End If
If PP(L)=3
JUNK=200
For X=1 To 40
If RENT(X,0)<997
If PROPOWN(X)>0 and PROPOWN(X)<>L and CURRENT(X)>JUNK
JUNK=CURRENT(X)+100
End If
End If
Next X
If(HOUSECOST(X1)+JUNK)>PM(L)
Goto CBH2
End If
Else
If(HOUSECOST(X1)+200)>PM(L)
Goto CBH2
End If
End If
If PROPOWN(X1)<>L or PROPOWN(X2)<>L or PROPOWN(X3)<>L
Goto CBH2
End If
If CURRENT(X1)<=RENT(X1,0) or CURRENT(X2)<=RENT(X2,0) or CURRENT(X3)<=RENT(X3,0)
Goto CBH2
End If
If HOUSE(X1)=H2 and HOUSE(X2)=H2 and HOUSE(X3)=H2
Goto CBH2
End If
If LH$="y"
If HOTELSLEFT=0 and HOUSE(X1)>H1-1 and HOUSE(X2)>H1-1 and HOUSE(X3)>H1-1
Goto CBH2
End If
If HOUSESLEFT=0 and(HOUSE(X1)<H1 or HOUSE(X2)<H1 or HOUSE(X3)<H1)
Goto CBH2
End If
If PP(L)=3
If HOUSE(X1)=H1 and HOUSE(X2)=H1 and HOUSE(X3)=H1
Goto CBH2
End If
End If
End If
CLRINFO
Gosub BUYHOUSE
CBH2:
If X1=J+2
X1=J+10
Goto CBH1
End If
Next J
CBH3:
Wait DEL
CROLLEND:
UDATESETS
Clear Key
Put Key Chr$(13)
JUNK=0 : JUNK2=0
Return
COMPSELLHOUSES:
NM=0
For X=1 To 3 : M(X)=0 : Next X
For X=40 To 1 Step -1
If PROPOWN(X)=L and HOUSE(X)>0
Inc NM : M(NM)=X
End If
Next X
If NM=0
Return
End If
If M(1)=40 or M(1)=4
NM=2
Else
NM=3
End If
If HOUSE(M(1))<HOUSE(M(3)) Then Swap M(1),M(3)
If HOUSE(M(1))<HOUSE(M(2)) Then Swap M(1),M(2)
If HOUSE(M(2))<HOUSE(M(3)) Then Swap M(2),M(3)
JUNK=NM
For J=JUNK To 2 Step -1
If M(J)=0
Dec NM
End If
Next J
Gosub SELLHOUSE
Return
COMPLOAN:
NM=0
For X=1 To 40
M(X)=0
Next X
For X=40 To 10 Step -10
If PROPOWN(X)=L and CURRENT(X)>0 and LOAN(X)=0
If CURRENT(X)>RENT(X,0)
Inc NM : M(NM)=X
End If
End If
If PROPOWN(X-8)=L and CURRENT(X-8)>0 and LOAN(X-8)=0
If CURRENT(X-8)>RENT(X-8,0)
Inc NM : M(NM)=X-8
End If
End If
Next X
If CURRENT(6)>0 and CURRENT(16)>0 and CURRENT(26)>0 and CURRENT(36)>0
If PROPOWN(6)=L and LOAN(6)=0
If CURRENT(6)=200
Inc NM : M(NM)=6
End If
End If
End If
If PROPOWN(13)=L and CURRENT(13)>0 and LOAN(13)=0 and CURRENT(29)>0
If PROPOWN(29)=L
Inc NM : M(NM)=13
End If
End If
If NM=0
Return
End If
Gosub LOAN
Return
COMPMORT:
NM=0
If PP(L)=3
Gosub COMPSORT
NM=CSS
For X=1 To CSS
M(X)=CS(X)
Next X
Else
For X=40 To 1 Step -1
If PROPOWN(X)=L and LOAN(X)=0
If CURRENT(X)<>0 and HOUSE(X)=0
Inc NM
M(NM)=X
End If
End If
Next X
End If
If NM=0
Return
End If
Gosub MORTGAGE
Return
COMPSORT:
CSS=0
For X=1 To 40
If PROPOWN(X)=L and CURRENT(X)<>0
Inc CSS : CS(CSS)=X
End If
Next X
If CSS=0 or CSS=1
Return
End If
For X=1 To CSS
JUNK=0 : JUNK2=0
If RENT(CS(X),0)>999
If RENT(CS(X),0)=1005
If PROPOWN(SET1(CS(X)))=L
JUNK=10
Else
JUNK=4
End If
CS2(CS(X))=7*JUNK-75
Else
For Y=6 To 36 Step 10
If PROPOWN(Y)=L
Inc JUNK
End If
Next Y
JUNK=JUNK-1
CS2(CS(X))=(2^JUNK*25)-100
End If
Else
JUNK2=CS(X)
JUNK=PV1#(JUNK2)*CURRENT(JUNK2)-(PRICE(JUNK2)/2)
CS2(CS(X))=JUNK
End If
Next X
JUNK=0
For X=1 To CSS-1
For Y=X+1 To CSS
If CS2(CS(X))>CS2(CS(Y))
Swap CS(X),CS(Y)
End If
Next Y
Next X
Return
HOUSEBOB:
HOFF=((X-1)/10)+1
If HOFF=1
HX=BX(X)-4 : HY=BY(X)-16 : SHAP=HOUSE(X)+9
DSX=SX(X)-16 : DSY=SY(X)-12 : DSHAP=HOUSE(X)+71
DTX=DSX+31 : DTY=DSY+4
End If
If HOFF=2
HX=BX(X)+50 : HY=BY(X)-5 : SHAP=HOUSE(X)+14
DSX=SX(X)+18 : DSY=SY(X)-7 : DSHAP=HOUSE(X)+76
DTX=DSX+8 : DTY=DSY+15
End If
If HOFF=3
HX=BX(X)-40 : HY=BY(X)+13 : SHAP=HOUSE(X)+9
DSX=SX(X)-16 : DSY=SY(X)+6 : DSHAP=HOUSE(X)+71
DTX=DSX+31 : DTY=DSY+4
End If
If HOFF=4
HX=BX(X)-62 : HY=BY(X)-5 : SHAP=HOUSE(X)+14
DSX=SX(X)-26 : DSY=SY(X)-7 : DSHAP=HOUSE(X)+76
DTX=DSX+8 : DTY=DSY+15
End If
If X=40
HY=HY-1
End If
If X=38
HY=HY+2
End If
Return
GAMEEND:
Show On
Menu Off
Wait Vbl
MOST=1
Gosub HOUSEBOB
For X=1 To NP
FS(X)=X
Next X
If NP>1
For X=1 To NP
Y=Rnd(NP-1)+1
Swap FS(X),FS(Y)
Next X
For X=1 To NP
L=X
TWORTH
PM(L)=WORTH
Next X
For X=1 To NP-1
For Y=X+1 To NP
If PM(FS(X))<PM(FS(Y))
Swap FS(X),FS(Y)
End If
Next Y
Next X
Else
L=1
TWORTH
PM(1)=WORTH
End If
CLRINFO
LOKATE[23,12]
DPEN[5]
CHPRT["Final Standings"]
UDATESETS
For J=1 To NP
LOKATE[23,12+J+1]
QQUEST[PM(FS(J))]
CHPRT[" "+Pen$(PC(FS(J)))+Left$(PL$(FS(J))+S$,13)+Pen$(14)+" --- "+Pen$(2)+C$+QQ$+Pen$(14)]
Next J
MOST=FS(1)
For X=2 To NP
Y=FS(X)
Bob Y,700,300,PLPC(Y)
Bob Y+4,700,300,DLPC(Y)
Wait Vbl
Bob Off FS(Y)
Bob Off FS(Y)+4
Wait Vbl
UDATEBOBS
Wait Vbl
Next X
L=MOST
HIGHLIGHTTURN
LOKATE[23,19]
CHPRT[" "+Pen$(PC(MOST))+PL$(MOST)+Pen$(14)+" is the winner! "]
LOKATE[23,20]
DPEN[14]
CHPRT["Do you want to play again? (y/N) "]
Wait Vbl
UDATEBOBS
If PPOS(MOST)=41
PPOS(MOST)=11
End If
K=PPOS(MOST)
MZ=0
WINLOOP:
MC=0 : MZ=0 : A$=""
A$=Inkey$
While A$="" and MC<>1
Inc K
If K>40
K=K-40
End If
If K>21
Bob MOST,BX(K),BY(K),Hrev(PLPC(MOST))
Screen 2
Bob MOST+4,SX(K),SY(K),Hrev(DLPC(MOST))
Screen 0
Wait Vbl
Else
Bob MOST,BX(K),BY(K),PLPC(MOST)
Screen 2
Bob MOST+4,SX(K),SY(K),DLPC(MOST)
Screen 0
Wait Vbl
End If
Play %100,90,2
Play Off
Screen FCR
For JUNK=1 To 15
MC=Mouse Click
If MC=1 Then JUNK=15
Wait Vbl
Next JUNK
Screen 0
A$=Inkey$
Wend
If MC=1
MZ=Mouse Zone
If DL$="n"
If MZ=43
OK
A$="y"
End If
If MZ=44
CANCEL
A$="n"
End If
Else
If MZ=41 or MZ=44
OK
A$="y"
End If
If MZ=42 or MZ=45
CANCEL
A$="n"
End If
End If
End If
If A$=Chr$(13)
A$="n"
End If
A$=Lower$(A$)
If A$="n"
For X=1 To 109
Bob 1,600,600,X
Next X
Wait Vbl
Bob Off
Wait Vbl
Screen Close 3
Screen Close 4
Screen Close 1
Screen FCR
Screen To Front FCR
Wait Vbl
If FCR=0
Screen Close 2
Else
Screen Close 0
End If
DELAY=5
Fade DELAY
Wait 20*DELAY
Screen Close FCR
_CLOSERTOOLS
End
End If
If A$<>"y"
Goto WINLOOP
End If
UDATESETS
For X=1 To 109
Bob 1,500,500,X
Next X
Wait Vbl
Bob Off
For X=1 To 40
HOUSE(X)=0
If PRICE(X)>0
UFILL[X,PROPOWN(X)]
End If
PROPOWN(X)=0
CURRENT(X)=RENT(X,0)
Next X
Menu Del
Pop
Restore
Goto R2
End
USA:
Restore PROPDATA
For J=1 To 41
Read PROP$(J),JUNK,JUNK,JUNK,JUNK,JUNK,JUNK,JUNK,JUNK,JUNK,JUNK,JUNK,JUNK,JUNK
Next J
Restore CCDATA
For J=1 To 16
Read CCHEST1$(J),CCHEST2$(J),CCHEST3$(J),CCMON(J),CCSPEC(J)
Next J
For J=1 To 16
Read CHANCE1$(J),CHANCE2$(J),CHANCE3$(J),CHANCE4$(J)
Read CMON(J),CSPEC(J)
Next J
JUNK=0 : RENT(39,0)=75
Return
BRIT:
Restore BRITISH_VERSION_DATA
For J=1 To 41
Read PROP$(J)
Next J
If CH1=0
CHANCE1$(12)="ADVANCE TO PALL MALL"
CHANCE1$(13)="GO TO KING'S CROSS STATION"
CHANCE1$(15)="ADVANCE TO MAYFAIR" : CHANCE3$(15)=""
CHANCE1$(16)="ADVANCE TO TRAFALGAR SQUARE"
CCHEST1$(7)="BANK ERROR IN YOUR FAVOUR"
CHANCE1$(4)="Advance token to the nearest Railway and pay"
CHANCE3$(4)="otherwise entitled. - If Railway is unowned,"
CHANCE1$(5)=CHANCE1$(4)
CHANCE3$(5)=CHANCE3$(4)
End If
RENT(39,0)=100
Return
AUS:
Restore AUSTRALIAN_VERSION_DATA
For J=1 To 41
Read PROP$(J)
Next J
If CH1=0
CHANCE1$(12)="ADVANCE TO WILLIAM STREET"
CHANCE1$(13)="GO TO PERTH STATION"
CHANCE1$(15)="ADVANCE TO KING'S AVENUE" : CHANCE3$(15)=""
CHANCE1$(16)="ADVANCE TO WICKHAM TERRACE"
CCHEST1$(7)="BANK ERROR IN YOUR FAVOUR"
CHANCE1$(4)="Advance token to the nearest Railway and pay"
CHANCE3$(4)="otherwise entitled. - If Railway is unowned,"
CHANCE1$(5)=CHANCE1$(4)
CHANCE3$(5)=CHANCE3$(4)
End If
RENT(39,0)=100
Return
FR:
Restore FRENCH_VERSION_DATA
For J=1 To 41
Read PROP$(J)
Next J
If CH1=0
CHANCE1$(12)="ADVANCE TO BOUL DE LA R�PUBLIQUE"
CHANCE1$(13)="GO TO GARE MONTPARNASSE"
CHANCE1$(15)="ADVANCE TO RUE DE LA PAIX" : CHANCE3$(15)=""
CHANCE1$(16)="ADVANCE TO AVENUE HENRI-MARTIN"
End If
RENT(39,0)=100
Return
ITA:
Restore ITALIAN_VERSION_DATA
For J=1 To 41
Read PROP$(J)
Next J
If CH1=0
CHANCE1$(12)="ADVANCE TO VIA ACCADEMIA"
CHANCE1$(13)="GO TO STAZIONE SUD"
CHANCE1$(15)="ADVANCE TO PARCO DELLA VITTORIA" : CHANCE3$(15)=""
CHANCE1$(16)="ADVANCE TO LARGO COLOMBO"
End If
RENT(39,0)=100
Return
GER:
Restore GERMAN_VERSION_DATA
For J=1 To 41
Read PROP$(J)
Next J
If CH1=0
CHANCE1$(12)="ADVANCE TO SEESTRA�E"
CHANCE1$(13)="GO TO S�DBAHNHOF"
CHANCE1$(15)="ADVANCE TO SCHLO�ALLEE" : CHANCE3$(15)=""
CHANCE1$(16)="ADVANCE TO OPERNPLATZ"
End If
RENT(39,0)=100
Return
SWE:
Restore SWEDISH_VERSION_DATA
For J=1 To 41
Read PROP$(J)
Next J
If CH1=0
CHANCE1$(12)="ADVANCE TO S:T ERIKSGATAN"
CHANCE1$(13)="GO TO S�DRA STATION"
CHANCE1$(15)="ADVANCE TO NORRMALMSTORG" : CHANCE3$(15)=""
CHANCE1$(16)="ADVANCE TO HAMNGATAN"
End If
RENT(39,0)=100
Return
SW:
Restore STARWARS_VERSION_DATA
For J=1 To 41
Read PROP$(J)
Next J
If CH1=0
CHANCE1$(12)="ADVANCE TO TATOOINE-LARS HOME"
CHANCE1$(13)="GO TO TIE FIGHTER"
CHANCE1$(15)="ADVANCE TO CORUSCANT-PALACE" : CHANCE3$(15)=""
CHANCE1$(16)="ADVANCE TO CLOUDCITY-REACTOR"
CHANCE1$(4)="Advance token to the nearest Fighter and pay"
CHANCE3$(4)="otherwise entitled. - If Fighter is unowned,"
CHANCE1$(5)=CHANCE1$(4)
CHANCE3$(5)=CHANCE3$(4)
End If
RENT(39,0)=75
Return
NC:
Restore NASCAR_VERSION_DATA
For J=1 To 41
Read PROP$(J)
Next J
If CH1=0
CHANCE1$(12)="ADVANCE TO 42-BELLSOUTH"
CHANCE1$(13)="GO TO CALIFORNIA SPEEDWAY"
CHANCE1$(15)="ADVANCE TO 3 -GOODWRENCH" : CHANCE3$(15)=""
CHANCE1$(16)="ADVANCE TO 30-PENNZOIL"
CHANCE1$(4)="Advance token to the nearest Speedway and pay"
CHANCE3$(4)="otherwise entitled. - If Speedway is unowned,"
CHANCE1$(5)=CHANCE1$(4)
CHANCE3$(5)=CHANCE3$(4)
End If
RENT(39,0)=75
Return
Procedure T1Y
DL$="y"
Paste Bob 491,56,26
Paste Bob 432,56,27
End Proc
Procedure T1N
DL$="n"
Paste Bob 432,56,26
Paste Bob 491,56,27
End Proc
Procedure T2Y
PA$="y"
Paste Bob 491,69,26
Paste Bob 432,69,27
End Proc
Procedure T2N
PA$="n"
Paste Bob 432,69,26
Paste Bob 491,69,27
End Proc
Procedure T3Y
LH$="y"
Paste Bob 491,82,26
Paste Bob 432,82,27
End Proc
Procedure T3N
LH$="n"
Paste Bob 432,82,26
Paste Bob 491,82,27
End Proc
Procedure T4Y
SF$="y"
Paste Bob 491,95,26
Paste Bob 432,95,27
End Proc
Procedure T4N
SF$="n"
Paste Bob 432,95,26
Paste Bob 491,95,27
End Proc
Procedure T5Y
PARKING$="y"
Paste Bob 491,108,26
Paste Bob 432,108,27
End Proc
Procedure T5N
PARKING$="n"
Paste Bob 432,108,26
Paste Bob 491,108,27
End Proc
Procedure T6Y
PM$="y"
Paste Bob 491,121,26
Paste Bob 432,121,27
End Proc
Procedure T6N
PM$="n"
Paste Bob 432,121,26
Paste Bob 491,121,27
End Proc
Procedure T7Y
QD$="y"
Paste Bob 491,134,26
Paste Bob 432,134,27
End Proc
Procedure T7N
QD$="n"
Paste Bob 432,134,26
Paste Bob 491,134,27
End Proc
Procedure T8Y
QS$="y"
Paste Bob 491,147,26
Paste Bob 432,147,27
End Proc
Procedure T8N
QS$="n"
Paste Bob 432,147,26
Paste Bob 491,147,27
End Proc
Procedure T9Y
FP$="y"
Paste Bob 491,160,26
Paste Bob 432,160,27
End Proc
Procedure T9N
FP$="n"
Paste Bob 432,160,26
Paste Bob 491,160,27
End Proc
Procedure T10Y
BTB$="y"
Paste Bob 491,173,26
Paste Bob 432,173,27
End Proc
Procedure T10N
BTB$="n"
Paste Bob 432,173,26
Paste Bob 491,173,27
End Proc
Procedure T11Y
CP$="y"
Paste Bob 491,186,26
Paste Bob 432,186,27
End Proc
Procedure T11N
CP$="n"
Paste Bob 432,186,26
Paste Bob 491,186,27
End Proc
Procedure PL1
PP(1)=PP(1)+1
If PP(1)=1 Then NP=NP+1
If PP(1)>3
If NP>2
NP=NP-1 : PP(1)=0
Else
PP(1)=1
End If
End If
Paste Bob 88,142,38+PP(1)
End Proc
Procedure PL2
PP(2)=PP(2)+1
If PP(2)=1 Then NP=NP+1
If PP(2)>3
If NP>2
NP=NP-1 : PP(2)=0
Else
PP(2)=1
End If
End If
Paste Bob 88,154,38+PP(2)
End Proc
Procedure PL3
PP(3)=PP(3)+1
If PP(3)=1 Then NP=NP+1
If PP(3)>3
If NP>2
NP=NP-1 : PP(3)=0
Else
PP(3)=1
End If
End If
Paste Bob 88,166,38+PP(3)
End Proc
Procedure PL4
PP(4)=PP(4)+1
If PP(4)=1 Then NP=NP+1
If PP(4)>3
If NP>2
NP=NP-1 : PP(4)=0
Else
PP(4)=1
End If
End If
Paste Bob 88,178,38+PP(4)
End Proc
Procedure OK
Paste Bob 20,153,27
Sam Play 1
Wait DEL
Paste Bob 20,153,26
End Proc
Procedure CANCEL
Paste Bob 20,173,27
Sam Play 1
Wait DEL
Paste Bob 20,173,26
End Proc
Procedure BFLAG
Paste Bob 10,25,35
Paste Bob 71,25,35
Paste Bob 132,25,35
Paste Bob 194,25,35
Paste Bob 255,25,35
Paste Bob 316,25,35
Paste Bob 377,25,35
Paste Bob 438,25,35
Paste Bob 499,25,35
End Proc
Procedure TUS
COUNTRY=1 : C$="$"
CH$="y" : QQ=1
BFLAG
Paste Bob 10,25,36
End Proc
Procedure TUK
COUNTRY=2 : C$="�"
CH$="n" : QQ=1
BFLAG
Paste Bob 71,25,36
End Proc
Procedure TAU
COUNTRY=3 : C$="$"
CH$="y" : QQ=1
BFLAG
Paste Bob 132,25,36
End Proc
Procedure TFR
COUNTRY=4 : C$="Fr"
CH$="n" : QQ=100
BFLAG
Paste Bob 194,25,36
End Proc
Procedure TITA
COUNTRY=5 : C$="�"
CH$="n" : QQ=100
BFLAG
Paste Bob 255,25,36
End Proc
Procedure TGER
COUNTRY=6 : C$="DM"
CH$="n" : QQ=2
BFLAG
Paste Bob 316,25,36
End Proc
Procedure TSWE
COUNTRY=7 : C$="Kr"
CH$="n" : QQ=20
BFLAG
Paste Bob 377,25,36
End Proc
Procedure TSW
COUNTRY=8 : C$="cr"
CH$="y" : QQ=1
BFLAG
Paste Bob 438,25,36
End Proc
Procedure TNC
COUNTRY=9 : C$="$"
CH$="y" : QQ=1
BFLAG
Paste Bob 499,25,36
End Proc
Procedure TLD
If Exist("Mono_settings")
Paste Bob 18,64,31
Break Off
F$="Mono_settings"
Trap Open In 1,F$
If Errtrap<>81
Input #1,JUNK$
If JUNK$<>"V1.8"
Close 1
Boom
Goto KLOSE
End If
Input #1,TITLE$
Input #1,PA$
Input #1,LH$
Input #1,SF$
Input #1,PARKING$
Input #1,PM$
Input #1,QD$
Input #1,NP
Input #1,COUNTRY
Input #1,QQ
Input #1,C$
Input #1,PP(1)
Input #1,PP(2)
Input #1,PP(3)
Input #1,PP(4)
Input #1,CP$
Input #1,QS$
Input #1,FP$
Input #1,BTB$
Close 1
If TITLE$="y"
T1Y
Else
T1N
End If
If PA$="y"
T2Y
Else
T2N
End If
If LH$="y"
T3Y
Else
T3N
End If
If SF$="y"
T4Y
Else
T4N
End If
If PARKING$="y"
T5Y
Else
T5N
End If
If PM$="y"
T6Y
Else
T6N
End If
If QD$="y"
T7Y
Else
T7N
End If
If QS$="y"
T8Y
Else
T8N
End If
If FP$="y"
T9Y
Else
T9N
End If
If BTB$="y"
T10Y
Else
T10N
End If
If CP$="y"
T11Y
Else
T11N
End If
For J=1 To 4
PP(J)=PP(J)-1
Next J
JUNK=NP
PL1
PL2
PL3
PL4
NP=JUNK
On COUNTRY Proc TUS,TUK,TAU,TFR,TITA,TGER,TSWE,TSW,TNC
End If
End If
KLOSE:
Paste Bob 18,64,30
JUNK$="" : JUNK=0
Break On
End Proc
Procedure TSV
Paste Bob 18,79,31
Break Off
F$="Mono_settings"
Open Out 1,F$
Print #1,"V1.8"
Print #1,TITLE$
Print #1,PA$
Print #1,LH$
Print #1,SF$
Print #1,PARKING$
Print #1,PM$
Print #1,QD$
Print #1,NP
Print #1,COUNTRY
Print #1,QQ
Print #1,C$
Print #1,PP(1)
Print #1,PP(2)
Print #1,PP(3)
Print #1,PP(4)
Print #1,CP$
Print #1,QS$
Print #1,FP$
Print #1,BTB$
Close 1
Break On
Paste Bob 18,79,30
End Proc
Procedure TDF
Paste Bob 18,95,31
T1Y
T2Y
T3Y
T4N
T5N
T6N
T7N
T8N
T9N
T10N
T11N
For J=1 To 4
PP(J)=0
Next J
PL1
PL2
PL3
PL4
NP=4
Rem change to 1 human & 3 amigas as default?
TUS
Wait 7
Paste Bob 18,95,30
End Proc
Procedure TLG
Paste Bob 8,117,29
LG$="y"
TDF
Paste Bob 8,117,28
End Proc
Procedure ENCODE[MOOSE$]
For JU=1 To Len(MOOSE$)
M2$=Mid$(MOOSE$,JU,1)
JUNKY=Asc(M2$)
If JUNKY>16
M2$=Chr$(JUNKY+14)
Else
M2$=Chr$(JUNKY)
End If
MOOSE2$=MOOSE2$+M2$
Next JU
Print #1,MOOSE2$
End Proc
Procedure RECODE
Inc SNAKE
Input #1,MOOSE2$
For JU=1 To Len(MOOSE2$)
M2$=Mid$(MOOSE2$,JU,1)
JUNKY=Asc(M2$)
If JUNKY>30
M2$=Chr$(JUNKY-14)
Else
M2$=Chr$(JUNKY)
End If
MOOSE$=MOOSE$+M2$
Next JU
End Proc[MOOSE$]
Procedure QQUEST[MOOSE]
MOOSE=MOOSE*QQ
QQ$=Str$(MOOSE)
MOOSE=Len(QQ$)-1
QQ$=Right$(QQ$,MOOSE)
QQ$=" "+QQ$
End Proc
Procedure _CLOSERTOOLS
Lib Close 1
End Proc
Procedure CLEANCLOSE
Amos To Front
Curs Off : Flash Off : Cls 0
Palette 0,$FFF
Lib Close 1
End
End Proc
Procedure CLEANCLOSE2
Amos To Front
Palette $0,$FFF
Curs Off : Flash Off : Cls 0
Lib Close 1
Paper 0 : Pen 1
Centre Err$(Errn)
For X=90 To 50 Step -1
Bell X
Wait Vbl
Next X
Boom
End
End Proc
Procedure RT_FILEREQ[TITLE$]
BUFFER$=""
For A=0 To 30
BUFFER$=BUFFER$+Chr$(0)+Chr$(0)+Chr$(0)+Chr$(0)
Next
TITLE$=TITLE$+Chr$(0)
Dreg(0)=0
Areg(0)=0
A=Lib Call(1,-30)
If A<>0
Areg(1)=A
Areg(2)=Varptr(BUFFER$)
Areg(3)=Varptr(TITLE$)
Areg(0)=0
B=Lib Call(1,-54)
P=Leek(A+16)
B$=Peek$(P,100,Chr$(0))
Areg(1)=A
B=Lib Call(1,-36)
End If
If Left$(BUFFER$,1)=Chr$(0)
BUFFER$=""
Else
BUFFER$=Left$(BUFFER$,Instr(BUFFER$,Chr$(0)))
End If
If B$<>"" and Right$(B$,1)<>":"
B$=B$+"/"
End If
BUFFER$=B$+BUFFER$
Rem CH1
End Proc[BUFFER$]
Rem 7 7 7 7 7 7 7 7 7 7 7 7 7 7
Rem 14 14 14 14 14 14 14 14 14 14 14 14 14 14